熊猫与南进行

时间:2018-07-17 14:25:45

标签: python pandas dataframe data-science data-analysis

我正在处理这样的数据框。

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

有人可以解释为什么会这样吗?

1 个答案:

答案 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