Это, очевидно, просто, но как новый новичок, я застрял.
У меня есть файл CSV, который содержит 3 столбца, состояние, идентификатор Office и Sales для этого офиса.
Я хочу рассчитать процент продаж на офис в определенном состоянии (общее количество всех процентов в каждом состоянии составляет 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 347225
CA 1 798585
3 890850
5 454423
CO 1 819975
3 202969
5 614011
WA 2 163942
4 369858
6 959285
Я не могу понять, как "дотянуться" до уровня state
groupby
, чтобы суммировать sales
для всего state
для вычисления доли.