Pandas Dataframe以反向列顺序逐行显示?

时间:2014-10-15 18:52:17

标签: python pandas dataframe 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  

输出

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  

我必须经常对我的数据执行此操作(更大的尺寸),并尝试找出一个简短/更好的方法来实现此目的。

由于

1 个答案:

答案 0 :(得分:4)

这是一个稍微更具可读性的选择:

df[df.columns[::-1]].cumsum(axis=1)[df.columns]

无需转置您的DataFrame;只需使用axis=1的{​​{1}}参数。

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