大熊猫占群总数的百分比这显然很简单,但作为一个粗俗的新闻,我被困住了。我有一个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.781508
level='state'
div
state
添加回答
举报
0/150
提交
取消