熊猫数据框如何对每行较大列的所有值求和
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
之后,让我们尝试cumsum
和axis=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
【讨论】:
以上是关于熊猫数据框如何对每行较大列的所有值求和的主要内容,如果未能解决你的问题,请参考以下文章