简体   繁体   English

数值变量和分类变量之间的百分比

[英]Percentage between a numerical and categorical variable

Hi I have a dataset like below嗨,我有一个如下所示的数据集

df = pd.DataFrame({"price" :[250,200,100,400,200,110], "segment": ["A","A","C","B","C","B"]})

I want to know how much percentage does each segment spent.我想知道每个细分市场花费了多少百分比。 like喜欢

A = 35.71%
B = 40.47%
C = 23.82%

I have done through subsetting each segment and then doing percentage of each, but I want to do it in single line.我已经通过对每个段进行子集化然后对每个段进行百分比来完成,但我想在单行中完成。

Thanks in advance.提前致谢。

May be you can try with groupby and applying lambda to each group.也许您可以尝试使用groupby并将lambda应用于每个组。 Something like:就像是:

  1. first apply groupby 'segment'首先应用 groupby 'segment'
  2. then for each group take the segment sum multiplied by 100然后对于每组取段总和乘以 100
  3. and divide by total sum of df并除以 df 的总和

As below:如下:

df.groupby('segment')['price'].apply(lambda g: sum(g)*100.0/df.price.sum())

Result:结果:

segment
A    35.714286
B    40.476190
C    23.809524
Name: price, dtype: float64

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM