计算大熊猫DataFrame中的所有NaN

时间:2019-05-22 16:16:57

标签: python pandas dataframe

我正在尝试计算熊猫系列中的NaN元素(数据类型类'numpy.float64'),以了解其中有多少个 哪种数据类型为“ pandas.core.series.Series”类

这是为了统计熊猫系列中的空值

import pandas as pd
oc=pd.read_csv(csv_file)
oc.count("NaN")

我对oc,count("NaN")的预期输出为7,但显示为'Level NaN must be same as name (None)'

5 个答案:

答案 0 :(得分:1)

count的参数不是您想要计算的(实际上是轴名称或索引)。

您要查找df.isna().values.sum()(以计算整个DataFrame中的NaN),或len(df) - df['column'].count()(以计算特定列中的NaN)。

答案 1 :(得分:0)

如果您的Series.dtypefloat64,则可以使用以下任意一种方式:

oc.isin([np.nan]).sum()
oc.isna().sum()

如果您的Series是混合数据类型,则可以使用以下内容:

oc.isin([np.nan, 'NaN']).sum()

答案 2 :(得分:0)

oc.size:返回包含NaN的数据帧的元素总数
oc.count().sum():返回数据帧的元素总数,不包括NaN

因此,另一种计算数据帧中NaN数量的方法是对它们进行减法运算:

NaN_count = oc.size - oc.count().sum()

答案 3 :(得分:0)

如果您的数据框看起来像这样;

aa = df.DataFrame(np.array([[1,2,nan],[3,nan,5],[8,7,6],[nan,nan,0]]), columns=['a','b','c'])
    a    b    c
0  1.0  2.0  NaN
1  3.0  NaN  5.0
2  8.0  7.0  6.0
3  NaN  NaN  0.0

要以cols计算“ nan”,您可以尝试

aa.isnull().sum()
a    1
b    2
c    1

对于nan的总数

aa.isnull().values.sum()
4

答案 4 :(得分:0)

只是为了娱乐,您可以选择其中一个

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

len(df)*len(df.columns) - len(df.stack())