基于另一个计数的列
我有一个这样的数据框。
df = pd.DataFrame({'transaction_id':[12565,12565,12743,12743,13456,13456,13856],
'rep_id':[560,560,560,560,287,287,287]})
我想创建一个带有如下计数器的新列。
transaction_id rep_id trans_num
0 12565 560 1
1 12565 560 1
2 12743 560 2
3 12743 560 2
4 13456 287 1
5 13456 287 1
6 13856 287 2
回答
试试transform+factorize
df['new']=df.groupby('rep_id').transaction_id.transform(lambda x : pd.factorize(x)[0]+1)
df
Out[389]:
transaction_id rep_id new
0 12565 560 1
1 12565 560 1
2 12743 560 2
3 12743 560 2
4 13456 287 1
5 13456 287 1
6 13856 287 2