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

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

Barbara Streisand
Barbara Streisand原创
2024-12-09 06:40:08597浏览

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

Pandas Groupby 占总数的百分比

可以使用 Pandas 的 groupby 计算给定州每个办公室的销售额百分比。但是,它需要额外的步骤才能达到所需的结果。

假设我们有一个 CSV 文件,其中包含代表州、办公室 ID 和销售额的列。我们可以导入 Pandas 并创建一个 DataFrame:

import pandas as pd

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)]})

要计算每个办事处和州的总销售额,我们可以按这些列进行分组:

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

要计算百分比给定州每个办事处的销售额,我们可以按州分组并应用一个函数,将每个办事处的销售额除以总州sales:

state_pcts = state_office.groupby(level=0).apply(lambda x:
                                                 100 * x / float(x.sum()))

这会生成一个包含每个办事处销售额百分比的 DataFrame:

print(state_pcts)
                     sales
state office_id           
AZ    2          16.981365
      4          19.250033
      6          63.768601
CA    1          19.331879
      3          33.858747
      5          46.809373
CO    1          36.851857
      3          19.874290
      5          43.273852
WA    2          34.707233
      4          35.511259
      6          29.781508

此方法通过“有效计算给定州每个办事处的销售额百分比”达到”到分组的州级别,以合计整个州的销售额。

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

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