【发布时间】:2021-05-25 19:22:01
【问题描述】:
我有一个看起来像这样的数据框
Email cq_closed_deal total_leads region dept
johnq@abc.com 1 4 ANZ salesA
grega@abc.com 0 0 ASEAN salesB
bruce@abc.com 1 6 ANZ salesA
danyi@abc.com 0 2 JAPAN salesC
jackc@abc.com 1 10 JAPAN salesC
kylev@abc.com 1 2 ASEAN salesB
petel@abc.com 0 0 ANZ salesB
sanja@abc.com 1 0 ASEAN salesB
andyu@abc.com 0 0 JAPAN salesA
sandk@abc.com 1 1 ANZ salesA
我正在尝试创建一个新列来存储 total_leads 的 95% 百分位数中的 total_leads(groupby 区域和部门)的平均值,其中该平均值仅根据 cq_closed_deal 大于 0 的值计算并且 total_leads 大于 0
生成的输出应如下所示
Email cq_closed_deal total_leads region dept top_leads_avg
johnq@abc.com 1 4 ANZ salesA 6
grega@abc.com 0 0 ASEAN salesB 2
bruce@abc.com 1 6 ANZ salesA 6
danyi@abc.com 0 2 JAPAN salesC 10
jackc@abc.com 1 10 JAPAN salesC 10
kylev@abc.com 1 2 ASEAN salesB 2
petel@abc.com 0 0 ANZ salesB 0
sanja@abc.com 1 0 ASEAN salesB 2
andyu@abc.com 0 0 JAPAN salesA 0
sandk@abc.com 1 1 ANZ salesA 6
到目前为止,我所做的是使用下面的代码,但 total_leads 的 95% 平均值的计算适用于所有行,而不是 cq_close_deal > 0 和 total_leads > 0 的行
df['top_leads_avg'] = df.groupby(['region','dept'])['total_leads'].transform('quantile',0.95).mean()
还有什么需要补充的吗?感谢任何形式的帮助,谢谢。
【问题讨论】:
标签: python pandas dataframe group-by