Попробуйте использовать np.where :
df = pd.DataFrame({'A': ['1', '2', '3', '4','5'],
'B': ['1', '1', '1', '1','1'],
'C': ['c', 'A1', np.nan, 'c3',np.nan],
'D': ['d0', 'B1', 'B2', np.nan,'B4'],
'E': ['A', np.nan, 'S', np.nan,'S'],
'F': ['3', '4', '5', '6','7'],
'G': ['2', '2', np.nan, '2','2']})
arr = np.where(df.isna())
arr
(array([1, 2, 2, 3, 3, 4], dtype=int64),
array([4, 2, 6, 3, 4, 2], dtype=int64))
np.where возвращает индексы, где данное условие истинно, здесь, где df равно нулю.
[(x, df.columns[y]) for x, y in zip(arr[0], arr[1])]
[(1, 'E'), (2, 'C'), (2, 'G'), (3, 'D'), (3, 'E'), (4, 'C')]