根据 python 中的条件求累计和
Finding cumulative sum based on a condition in python
我想在 pandas 数据框中实现以下内容。我无法为此找到解决方案,希望得到您的帮助。
输入
A | B | C
1 |100 |
1 | 10 | 30
1 | 20 |
1 | 30 |
输出
A | B | C
1 | 100 |
1 | 110 | 30
1 | 100 | (110+20)-30
1 | 130 |
假设您想要通过列 'A' 中的 id 计算列 'B' 的累积总和,并在 之前减去列 'C' 行,做:
df = pd.DataFrame([[1, 100, 0], [1, 10, 30], [1, 20, 0], [1, 30, 0], [2, 15, 0]], columns=['A', 'B', 'C'])
df['cumsum'] = df.groupby('A').cumsum()['B'] - df.groupby('A').shift().cumsum()['C'].fillna(0)
df
输出:
A B C cumsum
0 1 100 0 100.0
1 1 10 30 110.0
2 1 20 0 100.0
3 1 30 0 130.0
4 2 15 0 15.0
我想在 pandas 数据框中实现以下内容。我无法为此找到解决方案,希望得到您的帮助。
输入
A | B | C
1 |100 |
1 | 10 | 30
1 | 20 |
1 | 30 |
输出
A | B | C
1 | 100 |
1 | 110 | 30
1 | 100 | (110+20)-30
1 | 130 |
假设您想要通过列 'A' 中的 id 计算列 'B' 的累积总和,并在 之前减去列 'C' 行,做:
df = pd.DataFrame([[1, 100, 0], [1, 10, 30], [1, 20, 0], [1, 30, 0], [2, 15, 0]], columns=['A', 'B', 'C'])
df['cumsum'] = df.groupby('A').cumsum()['B'] - df.groupby('A').shift().cumsum()['C'].fillna(0)
df
输出:
A B C cumsum
0 1 100 0 100.0
1 1 10 30 110.0
2 1 20 0 100.0
3 1 30 0 130.0
4 2 15 0 15.0