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)
我必须经常对我的数据执行此操作(大小也更大),并尝试找出一种更短/更好的方法来实现这一目标。
谢谢
这是一个稍微更具可读性的替代方案:
df[df.columns[::-1]].cumsum(axis=1)[df.columns]
Run Code Online (Sandbox Code Playgroud)
无需转置您的 DataFrame;只需将axis=1参数用于cumsum.
显然,最简单的方法是以相反的顺序存储您的 DataFrame 列,但我认为您不这样做是有原因的。