大熊猫占群总数的百分比这显然很简单,但作为一个粗俗的新闻,我被困住了。我有一个CSV文件,其中包含3列:State、Office ID和该办公室的销售额。我想要计算给定状态下每个办公室的销售百分比(每个州的所有百分比的总数是100%)。df = pd.DataFrame({'state': ['CA', 'WA', 'CO', 'AZ'] * 3,
'office_id': range(1, 7) * 2,
'sales': [np.random.randint(100000, 999999)
for _ in range(12)]})df.groupby(['state', 'office_id']).agg({'sales': 'sum'})返回: sales
state office_id
AZ 2 839507
4 373917
6 347225CA 1 798585
3 890850
5 454423CO 1 819975
3 202969
5 614011WA 2 163942
4 369858
6 959285我似乎想不出如何“伸手”到state级别groupby的总和sales整个state计算分数。
3 回答
莫回无
TA贡献1865条经验 获得超7个赞
div
import numpy as npimport pandas as pd
np.random.seed(0)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'})state = df.groupby(['state']).agg({'sales': 'sum'})state_office.div(state, level='state') * 100
sales
state office_id
AZ 2 16.981365
4 19.250033
6 63.768601CA 1 19.331879
3 33.858747
5 46.809373CO 1 36.851857
3 19.874290
5 43.273852WA 2 34.707233
4 35.511259
6 29.781508level='state'divstate
添加回答
举报
0/150
提交
取消
