2017-10-04 111 views
1

我想在pandas的多索引列数据框中重命名我的一个级别。更改多索引列的df.columns.names

df.columns.names 

给我

FrozenList(['level0', 'level1']) 

我想重命名 '0级' 到 '主'。

我曾尝试不同的方法,没有工作:

df.columns.set_names('findingkey', level=0, inplace=True) 

给我TypeError: 'list' object is not callable

我也试图直接做到这一点:

df.columns.names[0]='main' 

与输出:TypeError: 'FrozenList' does not support mutable operations.

回答

1

使用:

df.columns.names = ['main', 'level1'] 

或者

df = df.rename_axis(['main', 'level1'], axis=1) 
+0

第一个作品,我只是感到不解的df.columns.names [0] = '主' 没有再工作... – Moiraine24

+0

嗯,我认为错误是明确的 - ''FrozenList'不支持可变操作',所以只分配所有新的值。 – jezrael

+0

并且没有方法允许只重命名一个? – Moiraine24