我有一个数据框,一般来说就像这样。
A B C
0 1 2 3
1 2 4 6
2 3 5 7
我想创建另一个数据框,其中每个值是原始数据框中值行的累积和,从右边开始,而不是左边 - 即输出应该如下所示:
A B C
0 6 5 3
1 12 10 6
2 ...
有人可以建议一些代码吗?
答案 0 :(得分:4)
df = df.iloc[:, ::-1].cumsum(axis=1).iloc[:, ::-1]
print (df)
A B C
0 6 5 3
1 12 10 6
2 15 12 7
#first reverse values
print (df.iloc[:, ::-1])
C B A
0 3 2 1
1 6 4 2
2 7 5 3
#then use function cumsum
print (df.iloc[:, ::-1].cumsum(axis=1))
C B A
0 3 5 6
1 6 10 12
2 7 12 15
#last reverse back
print (df.iloc[:, ::-1].cumsum(axis=1).iloc[:, ::-1])
A B C
0 6 5 3
1 12 10 6
2 15 12 7