熊猫:重新组织数据框

时间:2016-06-29 13:53:06

标签: python pandas dataframe

我的数据框有四列:

df = pd.DataFrame({'name': {1:'Aaron', 2:'Bobby', 3:'Carl'},  
               'job': {1:'mechanic', 2:'carpenter', 3:'plumber'},
               'experience': {1:12, 2:23, 3:14},
               'type': {1:'owner',2:'contractor',3:'assistant'}},
              columns=['name','job','experience','type'])
df

我想使用pandas重塑数据,以便names为索引,job为列标题,experiencetype为子标题列 - 即在mechanic列下,会有experiencetype的子列,carpenter列下的相同列,等等。 / p>

我尝试过使用

df.set_index(['name', 'job']).unstack('job') 

但是experiencetype是最高级别而不是job。有没有办法可以更改此设置以使job成为列标题的顶级?

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

您可以使用MultiIndex.swaplevel

df.columns = df.columns.swaplevel(0,1)
print (df)
job    carpenter   mechanic    plumber   carpenter mechanic    plumber
      experience experience experience        type     type       type
name                                                                  
Aaron        NaN       12.0        NaN        None    owner       None
Bobby       23.0        NaN        NaN  contractor     None       None
Carl         NaN        NaN       14.0        None     None  assistant