Skip to main content
 首页 » 编程设计

python之使用 Pandas Data Frame 如何将计数应用于多级分组列

2025年05月04日16mate10pro

我有一个包含多列的数据框,我想在分组依据之后使用计数,以便将其应用于 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()