Python 是否按相反的列顺序按行计算数据帧总和?
有没有更优雅的方法来实现这一点?我目前基于各种stackoverflow答案的解决方案如下Python 是否按相反的列顺序按行计算数据帧总和?,python,pandas,dataframe,cumsum,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
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
我必须经常在我的数据上执行此操作(也要大得多),并尝试找到一种短/更好的方法来实现这一点
谢谢这里有一个更易读的选择:
df[df.columns[::-1]].cumsum(axis=1)[df.columns]
无需转置数据帧;只需使用axis=1
参数来cumsum
显然,最简单的方法是只按相反的顺序存储数据帧列,但我认为您不这样做是有原因的。谢谢您的简化。事实上,我需要同时进行正向累积和反向累积,还需要为分析的其他部分保持原始列顺序。