我有客户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
答案 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