【发布时间】:2018-06-05 21:35:46
【问题描述】:
我正在尝试使用多级索引对数据框进行子集化。例如:
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)]})
df2=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
如您所见,df2 包含带有 state 和 office_id 的多级索引。对于 df2,我想通过使用 multiindex 找到以下数据帧的子集:
1) 仅状态 = AZ
2) 仅 office_id
3) 状态 = CA 和 office_id = 5
从历史上看,我会将索引保留在数据帧中并按列设置子集,但这效率不高。
有人可以指出我正确的方向吗?谢谢!
【问题讨论】:
标签: python pandas dataframe indexing