给出以下数据集:
df = pd.DataFrame({'a' : [1, 1, 3],
'b' : [4, 5, 6],
'c' : [7, 8, 9],
'cat_1' : ['a', 'a', 'b'],
'cat_2' : ['a', 'b', 'c']})
df
group_cat = df.groupby(['cat_1', 'cat_2'])
agg_cat = group_cat.agg({'a':['sum','mean'], 'b':['min','max']})
print(agg_cat)
a b
sum mean min max
cat_1 cat_2
a a 1 1 4 4
b 1 1 5 5
b c 3 3 6 6
使用xs()
我可以选择特定的嵌套列:
print(agg_cat.xs([('a','sum'),('b','max')], axis = 1))
a b
sum max
cat_1 cat_2
a a 1 4
b 1 5
b c 3 6
但是当我尝试在行级(axis=0
)应用相同的逻辑时,我收到一个错误:
print(agg_cat.xs([('a','a'),('b','c')], axis = 0))
KeyError: (('a', 'a'), ('b', 'c'))
答案 0 :(得分:0)
您需要使用.loc
索引器按索引过滤数据。
agg_cat.loc[[('a','a'),('b','c')]]
a b
sum mean min max
cat_1 cat_2
a a 1 1 4 4
b c 3 3 6 6