Переименование индекса и колонок в DataFrame Pandas

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Если вам требуется переименовать индекс в DataFrame Pandas, применяйте метод .rename():

Python
Скопировать код
df = pd.DataFrame({'A': [1, 2, 3]}, index=['x', 'y', 'z'])  # Создаём DataFrame
df.rename(index={'x': 'a', 'y': 'b', 'z': 'c'}, inplace=True)  # И обновляем индексы!

Таким образом, 'x', 'y', 'z' как волшебным образом преобразуются в 'a', 'b', 'c', и индекс DataFrame меняется успешно.

Кинга Идем в IT: пошаговый план для смены профессии

Расширяем возможности переименования

Работаем с MultiIndex DataFrames

Если ваш DataFrame обладает MultiIndex, можно переименовать каждый уровень:

Python
Скопировать код
df.index.rename(['Level1', 'Level2'], inplace=True)  # Присваиваем имя каждому уровню!

Это облегчает редактирование многоуровневых индексов.

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Добавляем имена индексам без названий

Если ваш DataFrame не содержит именованных индексов, их можно добавить:

Python
Скопировать код
df.index.names = ['Date']  # И появилось имя у индекса!

А для MultiIndex DataFrame присвоение имен происходит следующим образом:

Python
Скопировать код
df.index.names = ['Region', 'Store'] # Присваиваем имя каждому индексу.

Присваиваем Series новую метку

Когда работаете с Pandas Series, переименуйте её так:

Python
Скопировать код
series = df['A']  # Вот наша Series. 'A' осталась в прошлом...
series.rename('AllStar', inplace=True)  # Теперь она 'AllStar'!

Новое имя для Series делает её использование более удобным.

Сможете ли вы уловить (Pandas) версию?

Не все Pandas созданы одинаковыми

При использовании разных версий Pandas будьте готовы к тому, что функционал может отличаться. Проверяйте версию с помощью pd.__version__ и сверяйтесь с Документацией Pandas.

Массовое переименование с применением генераторов списков

Для массового переименования привлеките генераторы списков:

Python
Скопировать код
# Переименуем индексы!
df.index = [f'Index {label}' for label in df.index]

# И колонки подвергаем тому же!
df.columns = [f'Col {col}' for col in df.columns]

Теперь переименование может стать легким и приятным занятием.

"Переворачиваем" и переименовываем с помощью транспонирования

Чтобы изменить отображение вашего DataFrame используйте транспонирование df.T:

Python
Скопировать код
df = df.T # Транспонируем! Индексы и колонки меняются местами.

Теперь, в новой конфигурации, примените стандартные способы переименования.

Как справиться с общими проблемами

Как предотвратить ошибки при использовании

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

  • Установите axis='index' для индексов и axis='columns' для колонок.
  • Параметр inplace определяет, будет ли модифицирован оригинальный DataFrame (inplace=True) или создан новый (inplace=False).
Python
Скопировать код
df.rename_axis('Big Boss', axis='index', inplace=True)  # Индексу присвоено имя 'Big Boss'!
df.rename_axis('SideKick', axis='columns', inplace=True)  # И теперь колонкам тоже даём имена!

Оживляем CSV-файлы

Работая с CSV-файлами без заголовков, укажите Pandas, что делать:

Python
Скопировать код
df = pd.read_csv('data.csv', header=None)  # Загружаем CSV-файл...
df.columns = ['Column 1', 'Column 2']  # Устанавливаем имена колонок
df.index = pd.RangeIndex(start=1, stop=len(df) + 1).rename('ID')  # Присваиваем индексу имя и значение

Ваш DataFrame теперь приготовлен к использованию.

Визуализация

Markdown
Скопировать код
**Переименование индексов в DataFrame Pandas** – это и есть процесс переорганизации складского пространства:

Меняем старые обозначения 📦 на новые 🎁:

+---------------------+  +------------------------+
| Старая Коробка 📦 |  | Новый Подарок 🎁 |
| Старый Ящик  🚧    |  | Сундук Сокровищ  🗝 |
| Старый Контейнер 🏗 |  | Коробка-Загадка 🎃 |
+---------------------+  +------------------------+

В DataFrame это происходит путём замены **меток индекса**:


```python
# Старый индекс   Новый индекс
{ 'Box':      'Gift Box',
  'Crate':    'Treasure Chest',
  'Container': 'Mystery Box' }

```

Теперь ваш DataFrame выглядит аккуратно и удобно для восприятия.👓

Полезные материалы

  1. pandas.DataFrame.rename — pandas 2.2.0 документация — описание метода .rename() в официальном гайде.
  2. Индексация и выбор данных — pandas 2.2.0 документация — подсказки по созданию и работы с индексами в Pandas.
  3. Переименование индексов в DataFrame Pandas – Stack Overflow — обсуждение и методы переименования индексов DataFrame.
  4. pandas.DataFrame.set_axis — pandas 1.1.5 документация — подробности о методе set_axis для массового переименования.
  5. Python | Pandas Dataframe.rename() – GeeksforGeeks — пошаговое обучение функции DataFrame.rename().
  6. Полное руководство по индексации в Pandas — обзор методов индексации в Pandas.
  7. Технические заметки Криса Элбона о переименовании колонок и индексов DataFrame — примеры кода для переименования столбцов и индексов.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой метод используется для переименования индекса в DataFrame Pandas?
1 / 5