1

DF have

,manufacturer,project,type,Metric
0,Honda,project_a,sedan,10
1,Honda,project_a,suv,20
2,Honda,project_a,hatchback,2
3,Toyota,project_a,sedan,11
4,Toyota,project_a,suv,21
5,Toyota,project_a,hatchback,3
6,Honda,project_b,sedan,101
7,Honda,project_b,suv,201
8,Honda,project_b,hatchback,21
9,Toyota,project_b,sedan,111
10,Toyota,project_b,suv,211
11,Toyota,project_b,hatchback,31

DF want

                     project_a                   project_b
type          hatchback  sedan  suv          hatchback  sedan  suv
manufacturer                       
Honda                 2     10   20 .        21     101   201
Toyota                3     11   21 .        31     111   211

Currently i have -

df1['Metric'].groupby([df1['manufacturer'], df1['type']]).mean().unstack()

type          hatchback  sedan    suv
manufacturer                         
Honda              11.5   55.5  110.5
Toyota             17.0   61.0  116.0

How can i expand project_a and project_b as a higher level column?

blue01
  • 2,035
  • 2
  • 23
  • 38

1 Answers1

1

Seems like you want to pivot_table with multiple columns

df.pivot_table(columns=['project', 'type'], index=['manufacturer'], values=['Metric'])

project         project_a                      project_b
type            hatchback   sedan   suv        hatchback    sedan   suv
manufacturer                        
Honda           2           10      20         21           101     201
Toyota          3           11      21         31           111     211
rafaelc
  • 57,686
  • 15
  • 58
  • 82