我有一个数据框 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
关于python - 在 python pandas 中查找分类变量的比率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56731497/