Skip to main content
 首页 » 编程设计

python之在 python pandas 中查找分类变量的比率

2025年05月04日21jackei

我有一个数据框 df,其中我有客户 ID,以及他们以折扣价或正常价格购买的情况。我想找到他们购买的客户比例。

Customer Price_Type 
 1        Discount 
 1        Discount 
 1        Discount 
 1        DealerNet         
 1        DealerNet  
 1        DealerNet  
 2        DealerNet  
 2        DealerNet  
 2        DealerNet 
 2        DealerNet 

预期输出是:

Customer  at_Dicount at_DealerNet 
  1          50              50 
  2           0              100 

我尝试了 groupby 功能,但没有得到我想要的。

请您参考如下方法:

使用crosstab使用 normalize,乘以 100 和数据清理 - DataFrame.reset_index与 DataFrame.rename_axis :

df1 = (pd.crosstab(df['Customer'], df['Price_Type'], normalize='index') 
         .mul(100) 
         .reset_index() 
         .rename_axis(None, axis=1)) 
print (df1) 
   Customer  DealerNet  Discount 
0         1       50.0      50.0 
1         2      100.0       0.0