基于另一个计数的列

我有一个这样的数据框。

 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


以上是基于另一个计数的列的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>