Pandas Rename Index: Как переименовать индекс DataFrame в Pandas

В этом руководстве вы узнаете, как использовать Pandas для переименования индекса, включая переименование индекса датафрейма Pandas и мультииндекса датафрейма Pandas. Переименовывая индекс датафрейма Pandas, вы изменяете имя столбца индекса.

Быстрый ответ: используйте df.index.names

df.index.names = ['New Name']

Оглавление

Загрузка образца фрейма данных

Если вы хотите следовать за датафреймом, не стесняйтесь копировать и вставлять приведенный ниже код в ваш предпочитаемый редактор кода. Если вы используете свой собственный датафрейм, возможно, вам потребуется настроить часть кода.

Давайте начнем!

import pandas as pd
df = pd.DataFrame.from_dict(
    {
        'Year': [2018, 2019, 2020, 2021],
        'Carl': [1000, 2300, 1900, 3400],
        'Jane': [1500, 1700, 1300, 800],
        'Melissa': [800, 2300, None, 2300]
    }
).set_index('Year')
print(df)

Давайте начнем с переименования индекса в Pandas

Pandas упрощает процесс переименования индекса DataFrame. Прежде чем углубляться в это, давайте посмотрим, как мы можем получить доступ к имени индекса

К имени индекса фрейма данных можно получить доступ, используя атрибут df.index.name .

Давайте посмотрим, как это:

# Получить имя индекса dataframe

index_name = df.index.names

print(index_name)

# Возвращает: ['Year']

Мы видим, что при использовании атрибута .names возвращается список всех имен индексов. Аналогично, если у нас есть только один индекс, мы можем использовать атрибут .name. Это вернет только значение, а не список

Чтобы переименовать индекс фрейма данных Pandas, можно просто присвоить значение этому атрибуту. Это может быть особенно полезно при переименовании индекса фрейма данных Pandas после использования функции сводной таблицы Pandas.

Посмотрим, как это выглядит в Python, переименовав наш индекс в 'Time Period':

df.index.names = ['Time Period']
print(df)

Обратите внимание на тот факт, что мы передали list имён. Если бы мы использовали атрибут .name, мы могли бы просто передать строку 'Time Period'.

Теперь, когда вы знаете, как переименовать индекс DataFrame в Pandas, давайте посмотрим, как переименовать индекс в многоуровневом датафрейме.

Как переименовать мультииндекс Pandas

Работа с многоуровневыми индексами в Pandas может быть трудной задачей — но переименование их индексов не должно быть сложным.

Это работает так же, как вышеуказанный метод. Мы напрямую присваиваем список значений атрибуту .names .

Давайте загрузим датафрейм с мультииндексом и посмотрим, как мы можем переименовать его имена индексов:

import pandas as pd
df = pd.DataFrame.from_dict(
    {
        'Year': [2018, 2019, 2020, 2021],
        'Carl': [1000, 2300, 1900, 3400],
        'Jane': [1500, 1700, 1300, 800],
        'Melissa': [800, 2300, None, 2300]
    }
).set_index(['Year', 'Carl'])

print(df)

Теперь, если мы хотим увидеть имена мультииндексного DataFrame, мы можем снова вызвать атрибут .names :

print(df.index.names)

# Возвращает: ['Year', 'Carl']

Аналогично, мы можем переименовать индексы multi-index DataFrame, присвоив список атрибуту .names. Допустим, мы хотим назвать их: «Период времени» и «Средние продажи»:

df.index.names = ['Time Period', 'Average Sales']
print(df)

В этом разделе вы узнали, как переименовать индексы многоиндексного фрейма данных. В последнем разделе вы научитесь полностью удалять индекс фрейма данных Pandas.

Как удалить имя индекса Pandas

Может быть много случаев, когда вы не хотите, чтобы индекс вашего DataFrame в Pandas имел имя. Это может быть особенно полезно после создания сводной таблицы в Pandas, поскольку названия индексов часто могут вводить в заблуждение.

Чтобы удалить имя индекса в Pandas DataFrame, мы можем просто присвоить ему пустую строку '' или значение None. Давайте посмотрим, как это сделать с нашим оригинальным датафреймом:

import pandas as pd
df = pd.DataFrame.from_dict(
    {
        'Year': [2018, 2019, 2020, 2021],
        'Carl': [1000, 2300, 1900, 3400],
        'Jane': [1500, 1700, 1300, 800],
        'Melissa': [800, 2300, None, 2300]
    }
).set_index('Year')

df.index.name = None

print(df)

В этом разделе вы узнали, как удалить имя индекса в датафрейме Pandas.

Заключение

В этом посте вы узнали, как переименовать индекс DataFrame в Pandas, используя атрибуты .name и .names. Вы научились переименовывать индекс в одномерном DataFrame, а также в многомерном DataFrame. В конце вы узнали, как удалить имя индекса Pandas.

Чтобы узнать больше об атрибуте index.name в Pandas DataFrame, ознакомьтесь с официальной документацией здесь.

Last updated