【发布时间】: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
最好的方法是什么?
【问题讨论】:
标签: pandas dataframe data-science data-munging
我有一个数据框:
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
最好的方法是什么?
【问题讨论】:
标签: pandas dataframe data-science data-munging
使用逆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
【讨论】:
在还原列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
【讨论】: