给定一个 DataFrame
,我想计算每列中 NaN
值的数量,以将比例显示为直方图。
我想到了
df = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
nan_dict = {}
for col in df:
nan_dict[col] = df[col].value_counts(dropna=False)[0]
然后根据字典构建直方图。这看起来真的很麻烦;此外,当没有 NaN
时,它也会失败。
有没有一种方法可以在所有列上应用 value_counts
,以便返回一个每列具有 NaN
值的 Series
?
最佳答案
df = pd.DataFrame({"col1": [1, 2], "col2": [3, 4]})
print(dict(zip(df.columns, df.isna().sum())))
打印:
{'col1': 0, 'col2': 0}
对于数据框:
col1 col2
0 1 3.0
1 2 NaN
打印:
{'col1': 0, 'col2': 1}
关于python - 通过在每个 df 列上应用函数来创建系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67376644/