熊猫数据框如何对每行较大列的所有值求和

Posted

技术标签:

【中文标题】熊猫数据框如何对每行较大列的所有值求和【英文标题】:pandas dataframe how to sum all value of bigger columns per row 【发布时间】:2021-05-30 19:21:41 【问题描述】:

我有一个数据框:

0.  1. 2. 3
2.  3. 5. 9
5.  1. 0. 3

对于列1,2,3 - 我希望每行的值是较高列的总和 所以新的 df 将是:

0. 1. 2. 3 
2. 17 14. 9
5. 4. 3. 3

最好的方法是什么?

【问题讨论】:

【参考方案1】:

使用逆DataFrame.cumsum

L = [1,2,3]
df[L[::-1]] = df[L[::-1]].cumsum(axis=1)
print (df)
     0     1     2    3
0  2.0  17.0  14.0  9.0
1  5.0   4.0   3.0  3.0

【讨论】:

我得到相反的结果:第 3 列 = 1+2+3 ;第 2 列 = 1+2 ;和 1 = 1 而不是 1 = 1+2+3 ; 2 = 3+2 ;和 3 = 3。我在原始问题中有一个类型可能会引起混淆,请查看我的编辑 x0 列的值 - 是每列 c 的总和,使得 c >= x0【参考方案2】:

在还原列1, 2, 3 之后,让我们尝试cumsumaxis=1

c = [1, 2, 3]
df.loc[:, c] = df.loc[:, c[::-1]].cumsum(axis=1)

   0   1   2  3
0  2  17  14  9
1  5   4   3  3

【讨论】:

以上是关于熊猫数据框如何对每行较大列的所有值求和的主要内容,如果未能解决你的问题,请参考以下文章

我如何在熊猫中分组然后对值求和? [复制]

如何将每行列表中的元素与熊猫匹配

如何根据合并的数据框之一的两列的值在熊猫数据框中添加值

如何聚合数据框并通过 r 中的重复行对列的值求和

如何使用熊猫根据列的值范围分离数据框?

如何按 > 日期对一系列日期求和并将它们附加到熊猫新数据框中的新列?