首页 >后端开发 >Python教程 >如何使用 Pandas Groupby 计算每个办公室的总销售额百分比?

如何使用 Pandas Groupby 计算每个办公室的总销售额百分比?

Linda Hamilton
Linda Hamilton原创
2024-12-12 19:19:14162浏览

How to Calculate the Percentage of Total Sales per Office Using Pandas Groupby?

使用 Pandas Groupby 计算总销售额的百分比

要计算给定州内每个办事处的总销售额百分比,您可以利用 Pandas 的变革力量分组操作。让我们深入了解细节。

考虑一个包含三列的 CSV 文件:state、office_id 和 sales。要按州和 office_id 对数据进行分组并汇总销售额,您可以使用 df.groupby(['state', 'office_id']).agg({'sales': 'sum'}).

df = pd.DataFrame({'state': ['CA', 'WA', 'CO', 'AZ'] * 3,
                   'office_id': list(range(1, 7)) * 2,
                   'sales': [np.random.randint(100000, 999999)
                             for _ in range(12)]})

df.groupby(['state', 'office_id']).agg({'sales': 'sum'})

此操作会生成一个分组的 DataFrame,其中计算每个唯一(州、office_id)组合的销售额总和。

确定总销售额的百分比每个办公室,您都可以实施以下策略:

变革方法

引入变革的变革力量!将其应用于销售额列,然后除以每个州内的销售额总和。

df['sales'] / df.groupby('state')['sales'].transform('sum')

此转换会生成一个带有百分比的 DataFrame,列出每个办事处的销售额相对于各自州内总销售额的比例.

多分组方法

或者,您可以根据每个分组中的销售列创建一个新的分组对象(州,office_id)组。然后除以新分组列的总和。

state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
state_pcts = state_office.groupby(level=0).apply(lambda x:
                                                 100 * x / float(x.sum()))

这种方法为您提供了一个类似的带有百分比值的 DataFrame,但它需要额外的分组级别。

两种方法都有效计算每个办事处对其各自州内总销售额的贡献百分比。通过了解这些技术,您可以从分组数据中释放新的见解!

以上是如何使用 Pandas Groupby 计算每个办公室的总销售额百分比?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn