Pandas Dataframe cumsum 按行逆列顺序排列?

use*_*545 3 python dataframe pandas cumsum

有没有更优雅的方法来实现这一目标?我目前基于各种stackoverflow答案的解决方案如下

df = pds.DataFrame([[11,12,13,14],[15,16,17,18]], columns = [0,1,2,3])  
print df  
dT = df.T  
dT.reindex(dT.index[::-1]).cumsum().reindex(dT.index).T  
Run Code Online (Sandbox Code Playgroud)

输出

df is:
    0   1   2   3  
0  11  12  13  14  
1  15  16  17  18  

after by row reverse cumsum
    0   1   2   3
0   50  39  27  14  
1   66  51  35  18  
Run Code Online (Sandbox Code Playgroud)

我必须经常对我的数据执行此操作(大小也更大),并尝试找出一种更短/更好的方法来实现这一目标。

谢谢

Bre*_*arn 6

这是一个稍微更具可读性的替代方案:

df[df.columns[::-1]].cumsum(axis=1)[df.columns]
Run Code Online (Sandbox Code Playgroud)

无需转置您的 DataFrame;只需将axis=1参数用于cumsum.

显然,最简单的方法是以相反的顺序存储您的 DataFrame 列,但我认为您不这样做是有原因的。