我想找出我的数据的每一列中NaN的数量。
当前回答
数零:
df[df == 0].count(axis=0)
计算NaN:
df.isnull().sum()
or
df.isna().sum()
其他回答
可以使用df.iteritems()对数据帧进行循环。在for循环中设置一个条件来计算每列的NaN值百分比,并删除那些包含NaN值超过设置阈值的值:
for col, val in df.iteritems():
if (df[col].isnull().sum() / len(val) * 100) > 30:
df.drop(columns=col, inplace=True)
你可以使用value_counts方法打印np.nan的值
s.value_counts(dropna = False)[np.nan]
我使用这个循环来计算每一列的缺失值:
# check missing values
import numpy as np, pandas as pd
for col in df:
print(col +': '+ np.str(df[col].isna().sum()))
假设您希望获得一个名为reviews的数据框架中称为price的列(系列)中缺失值(NaN)的数量
#import the dataframe
import pandas as pd
reviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv", index_col=0)
用n_missing_prices作为变量来获取缺失的值,简单地做
n_missing_prices = sum(reviews.price.isnull())
print(n_missing_prices)
Sum是这里的关键方法,在我意识到Sum是在这种情况下使用的正确方法之前,我试图使用count
请使用以下方法计算特定的列数
dataframe.columnName.isnull().sum()