我有一个包含多列的数据框。我想迭代列,计算每列有多少空值,并生成一个新的数据帧,显示isnull
值和列标题名称之和。
如果我这样做:
for col in main_df:
print(sum(pd.isnull(data[col])))
我得到每列的空计数列表:
0
1
100
我要做的是创建一个新的数据框,其中列标题与空计数一起,例如
col1 | 0
col2 | 1
col3 | 100
答案 0 :(得分:6)
试试这个:
In [71]: df
Out[71]:
a b c
0 NaN 7.0 0
1 0.0 NaN 4
2 2.0 NaN 4
3 1.0 7.0 0
4 1.0 3.0 9
5 7.0 4.0 9
6 2.0 6.0 9
7 9.0 6.0 4
8 3.0 0.0 9
9 9.0 0.0 1
In [72]: pd.isnull(df).sum()
Out[72]:
a 1
b 2
c 0
dtype: int64
或:
In [76]: df.isnull().sum()
Out[76]:
a 1
b 2
c 0
dtype: int64
你可以用它创建一个DF:
In [78]: df.isnull().sum().to_frame('nulls')
Out[78]:
nulls
a 1
b 2
c 0
答案 1 :(得分:1)
对于某个数据集,您可以用来显示缺失值和数量
dataset.isnull().sum(axis = 0)
答案 2 :(得分:0)
如果数据框中的列数大于10,则最终将中间的列从输出中删除。您可以使用以下命令打印每一列:
nulls = df.isnull().sum().to_frame()
for index, row in nulls.iterrows():
print(index, row[0])