假设我有以下数据集:
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)
for (cat==a)
的 DataFrame >。在不展平标题的情况下我该如何做到这一点
a b
sum count
cat
a 2 2
最佳答案
您可以使用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
关于python - Pandas - 在 groupby 之后从嵌套标题中选择多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50074981/