pandas isnull sum与列标题

时间:2017-01-16 17:18:30

标签: python python-3.x pandas

我有一个包含多列的数据框。我想迭代列,计算每列有多少空值,并生成一个新的数据帧,显示isnull值和列标题名称之和。

如果我这样做:

for col in main_df:
    print(sum(pd.isnull(data[col])))

我得到每列的空计数列表:

0
1
100

我要做的是创建一个新的数据框,其中列标题与空计数一起,例如

col1 | 0
col2 | 1
col3 | 100

3 个答案:

答案 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])