【问题标题】:Create Series by applying function over every df column通过在每个 df 列上应用函数来创建系列
【发布时间】:2021-07-26 07:41:32
【问题描述】:

给定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]

然后从字典构建直方图。这看起来真的很麻烦;此外,当没有NaNs 时它会失败。

有没有一种方法可以在所有列中应用value_counts,以便我返回一个Series,每列都有NaN 值?

【问题讨论】:

    标签: python pandas function dataframe series


    【解决方案1】:
    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}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 2016-01-23
      • 2011-10-04
      • 2018-12-20
      • 2021-11-08
      • 2016-06-15
      • 2020-10-22
      相关资源
      最近更新 更多