我有一个包含四列的数据框:
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 来 reshape 数据,以便 names
是索引,job
是列标题,并具有 experience
和 type
作为列的子标题 - 即,在 mechanic
列下,将有一个用于 experience
和 的子列type
,与carpenter
栏下相同,等等
我尝试过使用
df.set_index(['name', 'job']).unstack('job')
但是,经验
和类型
才是最重要的,而不是工作
。有没有办法可以更改此设置,使 job
成为列标题的顶层?
感谢您的帮助!
最佳答案
您可以使用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
关于python - Pandas:重组数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38101702/