查找每个熊猫中每个唯一ID之前发生的计数之和

时间:2019-05-04 14:12:02

标签: pandas

我有客户ID和购买ID的历史记录,没有客户曾经购买过相同的产品。但是,对于每个购买ID(唯一),我如何找出客户之前进行购买的次数

我尝试使用groupby()和sort_values()

df = pd.DataFrame({'id_cust': [1,2,1,3,2,4,1],                   
                  'id_purchase': ['20A','143C','99B','78R','309D','90J','78J']})
df.sort_values(by='id_cust')
df.groupby('id_cust')['id_purchase'].cumcount()

这是我的期望:

  id_cust   id_purchase value
  1              20A        1
  2              143C       1
  1              99B        2
  3              78R        1
  2              3097D      2
  4              900J       1
  1              78J        3

1 个答案:

答案 0 :(得分:1)

由于cumcount()是唯一的,因此只能在id_cust列上使用id_purchase

df['value']=df.groupby('id_cust')['id_cust'].cumcount()+1
print(df)

   id_cust id_purchase  value
0        1         20A      1
1        2        143C      1
2        1         99B      2
3        3         78R      1
4        2        309D      2
5        4         90J      1
6        1         78J      3