gpt4 book ai didi

Pandas 识别产生 80 销售额的商品数量

转载 作者:行者123 更新时间:2023-12-02 00:52:36 30 4
gpt4 key购买 nike

我有每个国家/地区的数据框、产品列表和相关销售额我需要为每个国家/地区确定有多少销量最高的商品,其累计销售额占每个国家/地区所有商品总销售额的 80%。

例如

Cnt Product, units
Italy apple 500
Italy beer 1500
Italy bread 2000
Italy orange 3000
Italy butter 3000

预期结果

Italy 3

(总单位数为 10.000,前 3 名产品 - 黄油、橙子、面包的销售额为 8.000,占总数的 80%)

最佳答案

尝试定义一个函数并应用到 groupby 上:

def get_sale(x, pct=0.8):

thresh = 0.8 * x.sum()

# sort values descendingly for top salse
x=x.sort_values(ascending=False).reset_index(drop=True)

# store indices of those with cumsum pass threshold
sale_pass_thresh = x.index[x.cumsum().ge(thresh)]

return sale_pass_thresh[0] + 1

df.groupby('Cnt').units.apply(get_sale)

输出:

Cnt
Italy 3
Name: units, dtype: int64

关于Pandas 识别产生 80 销售额的商品数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56387070/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com