python - 通过在每个 df 列上应用函数来创建系列

标签 python pandas function dataframe series

给定一个 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/

相关文章:

r - 如何从联合函数中获取 match.call()?

python - for循环中的.Split()不返回列表

python - 根据另一个列表中的值对列表进行排序并从排序中排除列表中的元素?

c++ - 如何将变量从 C++ 中的一个函数返回到 main,然后在另一个函数中使用它?

javascript - 尝试将用户定向到新的 HTML 页面时出现问题 Python Bottle

文件中的 Python 行数

python - 在 Numpy 中生成唯一的随机值

python - 如何在Python中明智地访问列表列表中的元素

python - 根据其他列创建新的数据框列

java - 将类似 JavaScript 的语法解析为我自己的 Java 方法