Найти в Дзене

Pandas. Переименование столбцов.

При загрузке данных из различных источников, названия столбцов, сформированного загруженными данными датафрейма, не позволяют однозначно понимать хранящиеся в них данные. Это вносит путаницу, усложняет визуальное восприятие данных и осложняет работу. Кроме того, иногда в модулях визуализации данных, по осям диаграмм отображаются столбцы и если название столбца не соответствует смыслу хранящихся в нем данных, это также затрудняет и восприятие диаграммы. Конечно, всегда можно с помощью различных команд модулей визуализации отображать на графиках правильные и нужные названия осей, но иногда на это нет времени и быстрее переименовать столбец и использовать его название. Также, если вы сохраняете таблицу в качестве результата работы в Эксель, то для других пользователей такой таблицы, будет более комфортно воспринимать названия столбцов написанных полностью на русском языке, чем в виде сокращенных имен переменных в латинской транскрипции. Для решения этих задач столбцы датафрейма можно быс
Оглавление

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

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

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

Для решения этих задач столбцы датафрейма можно быстро и легко переименовать.

Начнем как обычно с создания тестового датафрейма для примера.

import pandas as pd

dict_data = {'column_1': ['a_side', 'b_side'], 'column_2': [1, 0], 'column_3': [3.0, 4.5]}

df = pd.DataFrame(data=dict_data)

Мы создали для работы датафрейм.

Датафрейм df
Датафрейм df

rename

Для переименования столбцов можно использовать несколько способов.

Первый способ - использование метода “rename”.

Метод «rename» для переименования столбцов должен получить словарь Python, к примеру вот такого вида:

{"column_1": "Столбец_1", "column_2": "Столбец_2", 'column_3': 'Столбец_3'}

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

Передаем данный словарь методу “rename”.

df.rename(columns={"column_1": "Столбец_1", "column_2": "Столбец_1", 'column_3': 'Столбец_3'})

В результате получаем датафрейм:

Копия датафрейма после применения метода rename
Копия датафрейма после применения метода rename

Как мы видим метод rename переименовал столбцы в точном соответствии с тем, как отражено в словаре.

Необходимо отметить, что такой синтаксис производит переименование столбцов в копии датафрейма, а не в исходном датафрейме. Исходный датафрейм df остался в неизменном виде.

Датафрейм df
Датафрейм df

Для изменения исходного датафрейма нужно добавить в команду, оператор “inplace”. Оператор “inplace” бинарный и может принимать только два значения True или False. По умолчанию этот оператор имеет значение False. Применяя метод “rename” без указания этого оператора столбцы переименовываются в копии датафрейма, в исходном датафрейме все столбцы остаются со старыми названиями.

Для изменения имен столбцов в исходном датафрейме, к которому применяется метод “rename”, необходимо явно указать в команде inplace=True.

В этом случае команда удаления столбцов в исходном датафрейме выглядит так:

df.rename(columns={"column_1": "Столбец_1", "column_2": "Столбец_2", 'column_3': 'Столбец_3'}, inplace=True)

Теперь исходный датафрейм df выглядит так:

Исходный датафрейм df с измененными названиями столбцов
Исходный датафрейм df с измененными названиями столбцов

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

df_1 = df.rename(columns={"column_1": "Столбец_1", "column_2": "Столбец_2", 'column_3': 'Столбец_3'})

В этом случае оператор “inplace” можно не указывать. Мы просто присвоили созданной копии новое название - df_1, оставив исходный датафрейм df в неизменном виде.

Исходный датафрейм df
Исходный датафрейм df

Новый датафрейм df_1
Новый датафрейм df_1

Важно!!!

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

columns

Использование метода “columns”, имеет меньший функционал чем “rename”, но позволяет быстро и легко произвести переименование столбцов датафрейма.

Метод “columns” используется не только для переименования, с его помощью можно вывести в виде списка перечень всех столбцов. Использовав эту его особенность можно показать достаточно быстрый пример переименования столбцов.

Для начала выведем список названий столбцов датафрейма.

Получение перечня столбцов
Получение перечня столбцов

Скопировав из вывода полученный список ['column_1', 'column_2', 'column_3'], можно прямо в нем внести изменения создав новый список ['column_10', 'column_20', 'column_30'].

Вставляем измененный список в команду. Можно просто в используемой строке поставить знак = и ставить новый список ['column_10', 'column_20', 'column_30'].

df.columns = ['column_10', 'column_20', 'column_30']

Произведено переименование столбцов в исходном датафрейме.

Переименование столбцов методом columns
Переименование столбцов методом columns

Обратите внимание, данным способом нельзя сразу создать новый датафрейм (копию) с измененными столбцами, оставив исходный датафрейм со старыми названиями столбцов.

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

df_1 = df.copy()

df_1.columns = ['column_10', 'column_20', 'column_30']

Создание нового датафрейма с измененными названиями столбцов
Создание нового датафрейма с измененными названиями столбцов

set_axis

Еще один метод, который можно использовать для переименования столбцов это “set_axis”. Естественно, возникает вопрос для чего несколько методов для проведения одной операции? На самом деле каждый из этих методов имеет более широкий функционал и может применяться в других случаях. В частности “set_axis” может из мультииндексного датафрейма сделать датафрейм с плоским индексом, а также может переименовывать не только столбцы, но и строки датафрейма. Здесь мы рассмотрим только одну грань данного метода, это переименование столбцов датафрейма.

Метод “set_axis” получает на вход список новых названий столбцов. Чтобы указать что нужно поменять не строки, а столбцы указывается параметр axis='columns' или axis=1, это равнозначный синтаксис.

df.set_axis(['column_A', 'column_B', 'column_C'], axis='columns')

Метод “set_axis” также изменяет названия столбцов в копии датафрейма, для изменения названий столбцов в исходном датафрейме команда будет следующей:

df = df.set_axis(['column_A', 'column_B', 'column_C'], axis=1)

Результат:

Переименование столбцов методом set_axis
Переименование столбцов методом set_axis

По такой же логике если переименование столбцов необходимо сделать в новой копии датафрейма, без изменения исходного датафрейма.

df_3 = df.set_axis(['column_A', 'column_B', 'column_C'], axis=1)

Создание нового датафрейма с переименованными названиями столбцов
Создание нового датафрейма с переименованными названиями столбцов

Теперь вы знаете основные способы по переименованию столбцов в датафрейме. Каждый из этих методов имеет дополнительный функционал. Для расширения ваших познаний в этих методах нужно изучать официальную документацию по Pandas.

Чтобы узнать еще больше о Pandas подписывайся на канал.

Если вы что-то не поняли, читайте начальные статьи по работе с Pandas:

Установка Anaconda Navigator и Jupyter lab

Представление данных в Pandas

Получение информации о данных в датафрейме.

Операции со столбцами.