np.where(pd.isnull(df))
返回值为 NaN 的行索引和列索引:
In [152]: import numpy as np
In [153]: import pandas as pd
In [154]: np.where(pd.isnull(df))
Out[154]: (array([2, 5, 6, 6, 7, 7]), array([7, 7, 6, 7, 6, 7]))
In [155]: df.iloc[2,7]
Out[155]: nan
In [160]: [df.iloc[i,j] for i,j in zip(*np.where(pd.isnull(df)))]
Out[160]: [nan, nan, nan, nan, nan, nan]
可以使用 applymap 查找空字符串的值:
In [182]: np.where(df.applymap(lambda x: x == ''))
Out[182]: (array([5]), array([7]))
请注意,使用applymap
需要为 DataFrame 的每个单元格调用一次 Python 函数。对于大型 DataFrame 来说这可能会很慢,因此如果您可以安排所有空白单元格包含 NaN ,这样您就可以使用pd.isnull
.