Python pandas:选择列值为null/None/nan的行

zad*_*zny 14 python pandas

如何选择列中的值为none的DataFrame的那些行?

我把这些编码为np.nan和这种类型无法匹配.

In [1]: import numpy as np

In [2]: import pandas as pd

In [3]: df = pd.DataFrame([[1, 2, 3], [3, 4, None]])

In [4]: df
Out[4]: 
   0  1    2
0  1  2  3.0
1  3  4  NaN

In [5]: df = df.fillna(np.nan)

In [6]: df
Out[6]: 
   0  1    2
0  1  2  3.0
1  3  4  NaN

In [7]: df.iloc[1][2]
Out[7]: nan

In [8]: df.iloc[1][2] == np.nan
Out[8]: False

In [9]: df[df[2] == None]
Out[9]: 
Empty DataFrame
Columns: [0, 1, 2]
Index: []
Run Code Online (Sandbox Code Playgroud)

Max*_*axU 29

你可以使用.isnull()方法:

In [48]: df[df[2].isna()]
Out[48]:
   0  1   2
1  3  4 NaN
Run Code Online (Sandbox Code Playgroud)

  • @ahbon,试试这个:np.nan == np.nan (3认同)