在python熊猫中查找类别变量的比率

时间:2019-06-24 07:14:20

标签: python pandas

我有一个数据框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函数,但没有得到我想要的。

1 个答案:

答案 0 :(得分:5)

crosstabnormalize一起使用,将100乘以倍数并清除数据-将DataFrame.reset_indexDataFrame.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