【问题标题】:Python Pandas: How to sum up columns that also include missing values?Python Pandas:如何总结还包含缺失值的列?
【发布时间】:2015-10-25 12:52:59
【问题描述】:

我有一个 df 有几列,其中三个是这样的:

num1  num2   num3 
1      NaN    1
NaN     1     1
1       1     1

我想创建另一列“sum_num”并在每行中为所有列添加值(替代方法是计算个数,因为值都是一)。

预期结果:

num1  num2   num3 sum_num
1      NaN    1      2
NaN     1     1      2
1       1     1      3

现在我已经尝试了这段代码,但我在“sum_num”列中只有 NaN 的内容。

df['sum_num'] = df.num1 + df.num2 + df.num3

有谁知道如何忽略缺失值,并且仍然要么对缺失值求和,要么对它们进行计数以获得每行所需的结果?

【问题讨论】:

    标签: python pandas sum missing-data


    【解决方案1】:

    sumaxis=1

    In [202]: df['sum_num'] = df.sum(axis=1)
    
    In [203]: df
    Out[203]:
       num1  num2  num3  sum_num
    0     1   NaN     1        2
    1   NaN     1     1        2
    2     1     1     1        3
    

    【讨论】:

    • 谢谢。如果数据框有一些其他列,而我只想总结这些特定列怎么办?
    • df[list_of_columns].sum(axis=1) ?
    • 是的,我知道了,谢谢。你能告诉我如何计算而不是总结它们的数量吗?
    • df.count(axis=1) :-) ?
    • 哈哈谢谢我现在感觉很愚蠢,如果不是所有的值都是一,我的意思是更多,例如如果我也有零。如何同时计算 1 和 0
    【解决方案2】:

    实际上,您可以从数据框创建子集,此处为df

    sum_num = df[['num1', 'num2', 'num3']]
    

    然后将子集添加到df:

    df['summed'] = sum_num.sum(axis=1)
    

    【讨论】:

      猜你喜欢
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 2015-07-25
      • 2022-09-25
      相关资源
      最近更新 更多