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

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

Linda Hamilton
Linda Hamilton原创
2024-12-06 09:48:11518浏览

How to Calculate the Percentage of Sales per Office within Each State using Pandas?

Pandas 中 Groupby 的总百分比

计算一个州内每个办事处贡献的销售额百分比需要在 Pandas 中采用细致入微的方法。虽然简单地按“state”和“office_id”分组可以为您提供每个办公室的销售额总和,但它不会提供该州内的百分比贡献。

要实现此目的,您需要首先创建一个 groupby基于“state”和“office_id”的对象。这将为您提供一个数据框,其销售列包含每个办事处-州组合的总销售额:

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

要计算百分比,您可以将每个办事处的销售额除以该州的总销售额。但是,要访问 groupby 中每个州的总销售额,您需要基于 'state' 创建第二个 groupby 对象:

state_total = df.groupby('state').agg({'sales': 'sum'})

使用此对象,您可以通过以下方式增强 'state_office' groupby包含每个办公室状态组合的销售额百分比的新列:

state_pcts = state_office.groupby(level=0).apply(lambda x:
                                                 100 * x / float(state_total.loc[x.name]))

请注意,“groupby”中的“level=0”参数指的是原始 groupby 对 'state' 和 'office_id' 形成的多级索引的顶层。

这种方法确保每个办事处的销售额百分比是通过引用各自州内的总销售额来计算的.

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

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