有更优雅的方法来实现这一目标吗?我基于各种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
我必须经常对我的数据执行此操作(更大的尺寸),并尝试找出一个简短/更好的方法来实现此目的。
由于
答案 0 :(得分:4)
这是一个稍微更具可读性的选择:
df[df.columns[::-1]].cumsum(axis=1)[df.columns]
无需转置您的DataFrame;只需使用axis=1
的{{1}}参数。
显然,最简单的方法是以相反的顺序存储您的DataFrame列,但我认为有一些原因导致您没有这样做。