Переименование мультииндекса в pandas

#pandas #dataframe #indexing

#pandas #фрейм данных #индексирование

Вопрос:

Есть ли способ переименовать индекс в многоиндексном фрейме данных?

Пример

 import pandas as pd


df = pd.DataFrame([
['green','M', 10.1, 'class2'],
['red', 'L', 13.5, 'class1']])
df.columns = ['color', 'size', 'price', 'classifier']

df.set_index(['color','size'], inplace=True)
 

Дает

             price   classifier
color   size

green   M   10.1    class2
red     L   13.5    class1
 

Я хочу переименовать индекс ‘size’, чтобы он стал size_modified

 df.rename(index={'size': 'Size_Mod'}, inplace=True) 
 

не сработало

Ответ №1:

вам нужно df.rename_axis вместо df.rename :

 df = df.rename_axis(index={'size': 'Size_Mod'}) 
 

 print(df)

                price classifier
color Size_Mod                  
green M          10.1     class2
red   L          13.5     class1
 

Ответ №2:

Другой способ, убедитесь, что порядок имен правильный. Но у него меньший отпечаток пальца!

 df.index.names = ['color','Size_Mod']