重命名多索引列名称Python

时间:2017-09-22 05:41:00

标签: python pandas

我有一个像下面的

的MultiIndex Dataframe df
                 Office
 Office    
 x         True   2
 y         False  3
 z         True   5

如果我重置df.reset_index(),它将错误为

"cannot insert Office, already exists"

如何将较高的(在第一行中出现)索引名称“Office”重命名为“Office1”

1 个答案:

答案 0 :(得分:3)

您可以使用rename_axis或设置index.names来重命名MultiIndexrename中的索引名称以获取更改列名称:

#if only rename get Unnamed column
df1 = df.rename(columns={'Office':'another col'}).reset_index()
print (df1)
  Office  Unnamed: 1  another col
0      x        True            2
1      y       False            3
2      z        True            5
df2 = df.rename_axis(('Office', 'bool')).rename(columns={'Office':'Office2'}).reset_index()
print (df2)
  Office   bool  Office2
0      x   True        2
1      y  False        3
2      z   True        5

df.index.names = ('Office1','bool')
df3 = df.rename(columns={'Office':'Office2'}).reset_index()
print (df3)
  Office1   bool  Office2
0       x   True        2
1       y  False        3
2       z   True        5