我在pandas DataFrame中有一个数据集。数据按[“ Customer_Id”,“广告系列”]排序。 我的目标虽然是向groupby函数添加另一步。对于每个广告系列,都有批次,新批次由New_rank == 1表示。
我想添加一列=“ Occurence”,为每个Customer_Id和广告系列分配一个编号为“ batch”。
在这种情况下,需要这样的输出:
任何想法将不胜感激!
答案 0 :(得分:0)
使用cumsum
:
df['Occurence'] = df.groupby(['CustomerId','Campaign'])['New_rank'].cumsum()
输出:
CustomerId Campaign New_rank Occurence
0 1 1 1 1
1 1 1 0 1
2 1 1 1 2
3 1 2 1 1
4 1 2 1 2
5 2 1 1 1
6 2 1 0 1
7 2 1 0 1
8 2 2 1 1
9 2 3 1 1
10 2 3 0 1