Pandas - 在groupby之后从嵌套标题中选择多个列

时间:2018-04-28 09:29:08

标签: python pandas dataframe pandas-groupby

说我有以下数据集:

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 

1 个答案:

答案 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