计算包含NaN个值的行数

时间:2019-06-08 10:41:17

标签: python pandas dataframe row nan

我有一个下面给出的数据框df,我必须计算包含NaN值的行数。

    Name  Age       City    Country
0   jack  NaN     Sydeny  Australia
1   Riti  NaN      Delhi      India
2  Vikas   31        NaN      India
3  Neelu   32  Bangalore      India
4  Steve   16   New York         US
5   John   11        NaN        NaN
6    NaN  NaN        NaN        NaN

要获得我尝试过的答案

df.isnull().sum().sum()

通过计算所有NaN值给我输出9,但是通过计算包含NaN值的行,答案是5。我不知道该怎么计算。

2 个答案:

答案 0 :(得分:4)

检查axis=1后,您需要isnull()上的df.any()

df.isnull().any(axis=1).sum()
#5

答案 1 :(得分:2)

仅以示例为例。

示例DF

>>> df
    Name   Age       City    Country
0   jack   NaN     Sydeny  Australia
1   Riti   NaN      Delhi      India
2  Vikas  31.0        NaN      India
3  Neelu  32.0  Bangalore      India
4   John  16.0   New York         US
5   John  11.0        NaN        NaN
6    NaN   NaN        NaN        NaN

要用bool指定Nan行...

>>> df.isnull().any(1)
0     True
1     True
2     True
3    False
4    False
5     True
6     True
dtype: bool

要获取Nan出现的行:

>>> df.index[df.isnull().any(1)]
Int64Index([0, 1, 2, 5, 6], dtype='int64')

直接回答最后一个问题:

>>> df.isnull().any(1).sum()
5

OR

>>> df.index[df.isnull().any(1).sum()]
5