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

标签 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 功能,但没有得到我想要的。

最佳答案

使用crosstab使用 normalize,乘以 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

关于python - 在 python pandas 中查找分类变量的比率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56731497/

相关文章:

python - 检索 DataFrame 的整行

python - 计算一列中子字符串在另一列中的出现次数

python - 使用 django-filter 进行不区分大小写的排序

Javascript 表单操作在使用 onsubmission 事件确认之前执行

python - Django 过滤查询集 __in=查询集中*每个*项目的列表

python - 在数据框中分隔特定值

python - sqlalchemy 将 mixin 列移动到末尾

python - 如何从 python 循环中获取特定术语

python - pandas:如何为列中的每个子字符串复制一个值

python - 在 Python 中保留除一列之外的重复行