检查数据框中某个特定列的NaN值

时间:2015-12-26 19:00:01

标签: python pandas dataframe

假设我有一个数据帧:

     a   b   c
  0  1   2  NaN
  1  2   NaN  4
  3  Nan 4  NaN

我想在某些特定列中检查NaN,并希望得到的数据帧为:

     a   b   c
  0  1   2  NaN
  3  Nan 4  NaN

在这里,我想仅在列'a'和列'c'中检查NaN。 如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用isnullany方法执行此操作:

In [264]: df
Out[264]: 
    a  b   c
0   1  2 NaN
1   2  NaN   4
2 NaN  4 NaN

In [265]: df[df.isnull().any(axis=1)]
Out[265]: 
    a  b   c
0   1  2 NaN
2 NaN  4 NaN

注意:如果您只想要没有NaN的明确行,则可以使用dropna方法

修改

如果您想要对数据框进行分组,可以将掩码与列一起使用并将其应用于整个数据框:

df_subset = df[['a', 'c']]

In [282]: df[df_subset.isnull().any(axis=1)]
Out[282]: 
    a  b   c
0   1  2 NaN
2 NaN  4 NaN