说我有以下数据集:
df = pd.DataFrame({'a' : [1, 1, 3],
'b' : [4, 5, 6],
'c' : [7, 8, 9],
'cat' : ['a', 'a', 'b']})
df
cat = df.groupby('cat')
ag = cat.agg({ "a" : ["sum", "mean"],
"b" : "count",
"c" : "mean"})
print(ag)
a b c
sum mean count mean
cat
a 2 1 2 7.50
b 3 3 1 9.00
我想为(a,sum)
返回包含(b,count)
和(cat==a)
的DataFrame。如果不展平标题,我该怎么做?
a b
sum count
cat
a 2 2
答案 0 :(得分:1)
您可以pd.DataFrame.xs
使用axis=1
:
res = ag.xs([('a', 'sum'), ('b', 'count')], axis=1)
print(res)
a b
sum count
cat
a 2 2
b 3 1