【发布时间】:2020-05-16 16:38:09
【问题描述】:
我有这个数据框
In [1]: import pandas as pd
In [2]: data = pd.DataFrame({'ID': ['A', 'A', 'A', 'A', 'B', 'B', 'B'], 'Tag': ['X', '', 'X', '', 'X', '',''], 'Counts': [1,3,5,2,3,2,1]})
In [3]: data
Out[3]:
ID Tag Counts
0 A X 1
1 A 3
2 A X 5
3 A 2
4 B X 3
5 B 2
6 B 1
我想用 cum sum group by column=ID 创建一个新列,但如果 column Tag = X 则重新启动 sum
In [6]: data['before'] = data.groupby(['ID']).Counts.cumsum()
In [7]: data['after'] = [1,4,5,7,3,5,6]
In [8]: data
Out[8]:
ID Tag Counts before after
0 A X 1 1 1
1 A 3 4 4
2 A X 5 9 5
3 A 2 11 7
4 B X 3 3 3
5 B 2 5 5
6 B 1 6 6
我想得到'after'列
【问题讨论】:
标签: python pandas pandas-groupby cumsum