假设我有以下数据框:如何为pandas multiindex数据框中的每个子索引添加一行?
import pandas as pd
df = pd.DataFrame(
{
'state': ['CA', 'WA', 'CO', 'AZ'] * 3,
'office_id': list(range(1, 7)) * 2,
'sales': [pd.np.random.randint(100000, 999999) for _ in range(12)]
}
)
这就是:
office_id sales state
0 1 903325 CA
1 2 364594 WA
2 3 737728 CO
3 4 239378 AZ
4 5 833003 CA
5 6 501536 WA
6 1 920821 CO
7 2 879602 AZ
8 3 661818 CA
9 4 548888 WA
10 5 842459 CO
11 6 906791 AZ
现在我做office_id
和states
一个groupby
操作:
df.groupby(["office_id", "state"]).aggregate({"sales": "sum"})
这导致:
sales
office_id state
1 CA 903325
CO 920821
2 AZ 879602
WA 364594
3 CA 661818
CO 737728
4 AZ 239378
WA 548888
5 CA 833003
CO 842459
6 AZ 906791
WA 501536
是否可以为每个office_id添加一行,并使用新索引total
(例如,这是销售列的每个州的总和)?
我可以通过分组"office_id"
和sum来计算它,但是我获得了一个新的DataFrame,并且我没有成功合并它。