Я довольно новичок в pandas, и я изо всех сил пытаюсь получить подходящее среднее значение в многоиндексной серии. Многоиндексный ряд в настоящее время выглядит следующим образом;
idx = pd.MultiIndex.from_tuples([('foo', 111), ('foo', 222),
('bar', 111), ('bar', 222), ('bar', 333),
('baz', 111),
('qux', 111), ('qux', 222)],
names=['ID', 'Account Number'])
df = pd.DataFrame(index=idx, data={'Service 1': 18, 'Service 2': 22, 'Total cost': 40})
df = pd.concat([df], keys=['Cost'], axis=1)
Cost
Service 1 Service 2 Total cost
ID Account Number
foo 111 18 22 40
222 18 22 40
bar 111 18 22 40
222 18 22 40
333 18 22 40
baz 111 18 22 40
qux 111 18 22 40
222 18 22 40
Таблицы, из которых извлекаются все данные, относятся к стоимости услуг 1 и 2 на уровне номера счета, но для этого действительно необходимо применить стоимость на уровне идентификатора и распределить стоимость между номера счетов, так что это должно выглядеть так:
Cost
Service 1 Service 2 Total cost
ID Account Number
foo 111 9.0 11.000000 20.000000
222 9.0 11.000000 20.000000
bar 111 6.0 7.333333 13.333333
222 6.0 7.333333 13.333333
333 6.0 7.333333 13.333333
baz 111 18.0 22.000000 40.000000
qux 111 9.0 11.000000 20.000000
222 9.0 11.000000 20.000000
Я пробовал df.groupby(['ID']).transform('mean')
, но это, очевидно, дает мне исходные цифры, и я не уверен, как добраться туда, где мне нужно.
Чувствую, что я с этим справился, поэтому любая помощь будет признательна.