2017-10-04 1 views
1

Je souhaite renommer l'un de mes niveaux dans une base de données de colonnes multi-indexées dans pandas.Modifier les df.columns.names pour les colonnes multi-index

df.columns.names 

me donne

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

Je veux renommer 'Level0' à 'main'.

J'ai essayé différentes approches, ne fonctionne:

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

me donne TypeError: 'list' object is not callable

J'ai aussi essayé de le faire directement:

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

avec sortie: TypeError: 'FrozenList' does not support mutable operations.

Répondre

1

Utilisation:

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

Ou

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

D'abord on travaille, je suis juste perplexe que df.columns.names [0] = 'principale' ne fonctionne pas alors ... – Moiraine24

+0

Hmm, je pense que l'erreur est clair - '' FrozenList 'ne supporte pas les opérations mutables', donc seulement assigner toutes les nouvelles valeurs fonctionne. – jezrael

+0

et il n'y a aucune méthode qui permet de renommer un seul? – Moiraine24