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