我有一个通常形式的数据框看起来像这样。从右边开始的累积总和
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 ...
任何人都可以建议一点代码来做到这一点?
我有一个通常形式的数据框看起来像这样。从右边开始的累积总和
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 ...
任何人都可以建议一点代码来做到这一点?
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
没有你写询问的声音令人振奋之前的一些笨拙的代码的前景?毕竟这是一个有趣的任务 –
@Shan - 如果我的回答很有帮助,请不要忘记[接受](http://meta.stackexchange.com/a/5235/295067)它。谢谢。 – jezrael