我有一個通常形式的數據框看起來像這樣。從右邊開始的累積總和
A B C
0 1 2 3
1 2 4 6
2 3 5 7
我想創建另一個數據幀,其中每個值是沿着值的行累計和原數據幀,從右側開始,而不是左 - 即輸出應該像這樣:
A B C
0 6 5 3
1 12 10 6
2 ...
任何人都可以建議一點代碼來做到這一點?
我有一個通常形式的數據框看起來像這樣。從右邊開始的累積總和
A B C
0 1 2 3
1 2 4 6
2 3 5 7
我想創建另一個數據幀,其中每個值是沿着值的行累計和原數據幀,從右側開始,而不是左 - 即輸出應該像這樣:
A B C
0 6 5 3
1 12 10 6
2 ...
任何人都可以建議一點代碼來做到這一點?
df = df.iloc[:, ::-1].cumsum(axis=1).iloc[:, ::-1]
print (df)
A B C
0 6 5 3
1 12 10 6
2 15 12 7
#first reverse values
print (df.iloc[:, ::-1])
C B A
0 3 2 1
1 6 4 2
2 7 5 3
#then use function cumsum
print (df.iloc[:, ::-1].cumsum(axis=1))
C B A
0 3 5 6
1 6 10 12
2 7 12 15
#last reverse back
print (df.iloc[:, ::-1].cumsum(axis=1).iloc[:, ::-1])
A B C
0 6 5 3
1 12 10 6
2 15 12 7
沒有你寫詢問的聲音令人振奮之前的一些笨拙的代碼的前景?畢竟這是一個有趣的任務 –
@Shan - 如果我的回答很有幫助,請不要忘記[接受](http://meta.stackexchange.com/a/5235/295067)它。謝謝。 – jezrael