我正在处理这样的数据框。
df = pd.DataFrame([[1, np.nan, 2],
[2, 3, 5],
[np.nan, 4, 6]],index=['a','b','c'])
df
0 1 2
a 1.0 NaN 2
b 2.0 3.0 5
c NaN 4.0 6
当我使用df.isnull()时,它的输出为:
0 1 2
a False True False
b False False False
c True False False
当我使用df [df.isnull()]时,为什么所有元素都显示为nan:
df[df.isnull()]
0 1 2
a NaN NaN NaN
b NaN NaN NaN
c NaN NaN NaN
有人可以解释为什么会这样吗?
答案 0 :(得分:3)
这是数据帧的掩码,它将所有False值掩码为np.nan
。
例如
df[~df.isnull()]
Out[342]:
0 1 2
a 1.0 NaN 2
b 2.0 3.0 5
c NaN 4.0 6
和
df[df==2]
Out[343]:
0 1 2
a NaN NaN 2.0
b 2.0 NaN NaN
c NaN NaN NaN
由于isnull
返回的所有np.nan
值为True
遮罩后
df[df.isnull()]
Out[344]:
0 1 2
a NaN(False mask as NaN) NaN(True) NaN
b NaN(True) NaN NaN
c NaN NaN NaN