cumsum - 累加计算

cumsum 可以对数据按照指定方式进行累加,👉官方文档

在线刷题

检查 or 强化 Pandas 数据分析操作?👉在线体验「Pandas进阶修炼300题」

Note

本页面代码可以在线编辑、执行

按列累加

将 df7 按列进行累加

import pandas as pd
import numpy as np
df7 = pd.DataFrame(np.arange(1,37).reshape([9,4]), columns=["A", "B","C","D"])
df7['item'] = ['Apple','Xiaomi','Huawei'] * 3
df7
A B C D item
0 1 2 3 4 Apple
1 5 6 7 8 Xiaomi
2 9 10 11 12 Huawei
3 13 14 15 16 Apple
4 17 18 19 20 Xiaomi
5 21 22 23 24 Huawei
6 25 26 27 28 Apple
7 29 30 31 32 Xiaomi
8 33 34 35 36 Huawei
df7[list('ABCD')].cumsum()
A B C D
0 1 2 3 4
1 6 8 10 12
2 15 18 21 24
3 28 32 36 40
4 45 50 55 60
5 66 72 78 84
6 91 98 105 112
7 120 128 136 144
8 153 162 171 180

按行累加

将 df7 按行进行累加

df7[list('ABCD')].cumsum(axis = 1)
A B C D
0 1 3 6 10
1 5 11 18 26
2 9 19 30 42
3 13 27 42 58
4 17 35 54 74
5 21 43 66 90
6 25 51 78 106
7 29 59 90 122
8 33 67 102 138

分组累加

将 df7 按照 item 按不同组对第 A 列进行累加

df7 = df7.sort_values(['item']).reset_index(drop=True)
df7['cusum']=df7.groupby('item')['A'].cumsum(axis=0)
df7
A B C D item cusum
0 1 2 3 4 Apple 1
1 13 14 15 16 Apple 14
2 25 26 27 28 Apple 39
3 9 10 11 12 Huawei 9
4 21 22 23 24 Huawei 30
5 33 34 35 36 Huawei 63
6 5 6 7 8 Xiaomi 5
7 17 18 19 20 Xiaomi 22
8 29 30 31 32 Xiaomi 51
On this page