gpt4 book ai didi

python - Pandas:一个值相对于组总数的百分比

转载 作者:行者123 更新时间:2023-12-02 15:53:29 28 4
gpt4 key购买 nike

我有一个包含产品列表销售数量的数据框。每个产品都分配了一个设计/范围名称。在每个设计中,可能有多个产品。如何仅在特定设计内执行计算以找到销售分成?我想找出给定范围内有多少百分比来自某种产品。到目前为止,我只能获取整个产品列表并计算每个产品占总销量的百分比。

原始数据帧:

id  Product  Range  Quantity
1 Prod1 A 6
2 Prod2 A 4
3 Prod3 B 2
4 Prod4 B 8

计算后的数据框:

id  Product  Range  Quantity  % of range
1 Prod1 A 6 60%
2 Prod2 A 4 40%
3 Prod3 B 2 20%
4 Prod4 B 8 80%

最佳答案

您需要一个简单的 groupby.transform('sum') 来获取每组的总和,然后执行经典向量运算。

我提供了一个 float 示例和一个字符串示例:

total = df.groupby('Range')['Quantity'].transform('sum')

# as float
df['% of range'] = df['Quantity'].div(total)

# as string
df['% of range (str)'] = df['Quantity'].div(total).mul(100).astype(int).astype(str) + ' %'

输出:

   id Product Range  Quantity  % of range % of range (str)
0 1 Prod1 A 6 0.6 60 %
1 2 Prod2 A 4 0.4 40 %
2 3 Prod3 B 2 0.2 20 %
3 4 Prod4 B 8 0.8 80 %

关于python - Pandas:一个值相对于组总数的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71857310/

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