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中文网其他相关文章!