我有一个包含多列的数据框,我想在分组依据之后使用计数,以便将其应用于 2 列或更多列的组合。例如,假设我有两列:
user_id product_name
1 Apple
1 Banana
1 Apple
2 Carrot
2 Tomato
2 Carrot
2 Tomato
3 Milk
3 Cucumber
...
我想要实现的是这样的:
user_id product_name Product_Count_per_User
1 Apple 1
1 Banana 2
2 Carrot 2
2 Tomato 2
3 Milk 1
3 Cucumber 1
我无法得到它。我试过这个:
dcf6 = df3.groupby(['user_id','product_name'])['user_id', 'product_name'].count()
但它似乎没有得到我想要的,它显示的是 4 列而不是 3 列。怎么办?谢谢。
请您参考如下方法:
你同时计算两列,你可以只使用groupby.size:
(df.groupby(['user_id', 'Product_Name']).size()
.rename('Product_Count_per_User').reset_index())
或者只计算一列:
df.groupby(['user_id','Product_Name'])['user_id'].size()
