【问题标题】:pandas isnull sum with column headers带有列标题的熊猫 isnull 总和
【发布时间】:2017-05-31 14:30:42
【问题描述】:
我有一个包含多列的数据框。我想遍历列,为每列计算有多少空值并生成一个新的数据框,该数据框在列标题名称旁边显示 isnull 值的总和。
如果我这样做:
for col in main_df:
print(sum(pd.isnull(data[col])))
我得到每列的空计数列表:
0
1
100
我想要做的是创建一个新的数据框,它的列标题旁边有空计数,例如
col1 | 0
col2 | 1
col3 | 100
【问题讨论】:
标签:
python
python-3.x
pandas
【解决方案1】:
试试这个:
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
【解决方案2】:
如果您的数据框中的列数大于 10,您最终会在输出中忽略中间列。您可以使用以下方式打印每一列:
nulls = df.isnull().sum().to_frame()
for index, row in nulls.iterrows():
print(index, row[0])
【解决方案3】:
对于某个数据集,您可以使用它来显示缺失值和数字
dataset.isnull().sum(axis = 0)