При загрузке данных из различных источников, названия столбцов, сформированного загруженными данными датафрейма, не позволяют однозначно понимать хранящиеся в них данные. Это вносит путаницу, усложняет визуальное восприятие данных и осложняет работу.
Кроме того, иногда в модулях визуализации данных, по осям диаграмм отображаются столбцы и если название столбца не соответствует смыслу хранящихся в нем данных, это также затрудняет и восприятие диаграммы. Конечно, всегда можно с помощью различных команд модулей визуализации отображать на графиках правильные и нужные названия осей, но иногда на это нет времени и быстрее переименовать столбец и использовать его название.
Также, если вы сохраняете таблицу в качестве результата работы в Эксель, то для других пользователей такой таблицы, будет более комфортно воспринимать названия столбцов написанных полностью на русском языке, чем в виде сокращенных имен переменных в латинской транскрипции.
Для решения этих задач столбцы датафрейма можно быстро и легко переименовать.
Начнем как обычно с создания тестового датафрейма для примера.
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)
Мы создали для работы датафрейм.
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 переименовал столбцы в точном соответствии с тем, как отражено в словаре.
Необходимо отметить, что такой синтаксис производит переименование столбцов в копии датафрейма, а не в исходном датафрейме. Исходный датафрейм 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_1 = df.rename(columns={"column_1": "Столбец_1", "column_2": "Столбец_2", 'column_3': 'Столбец_3'})
В этом случае оператор “inplace” можно не указывать. Мы просто присвоили созданной копии новое название - df_1, оставив исходный датафрейм df в неизменном виде.
Важно!!!
В данном примере я намеренно показал возможность переименования столбцов в кириллическую литерацию, но используйте кириллицу только перед финальным сохранением таблицы, например в эксель, не используйте кириллические названия столбцов, если вы будете проводить с таблицей какие либо операции. 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']
Произведено переименование столбцов в исходном датафрейме.
Обратите внимание, данным способом нельзя сразу создать новый датафрейм (копию) с измененными столбцами, оставив исходный датафрейм со старыми названиями столбцов.
Чтобы провести такую операцию, необходимо сначала создать копию датафрейма, а потом провести переименование в новом датафрейме.
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)
Результат:
По такой же логике если переименование столбцов необходимо сделать в новой копии датафрейма, без изменения исходного датафрейма.
df_3 = df.set_axis(['column_A', 'column_B', 'column_C'], axis=1)
Теперь вы знаете основные способы по переименованию столбцов в датафрейме. Каждый из этих методов имеет дополнительный функционал. Для расширения ваших познаний в этих методах нужно изучать официальную документацию по Pandas.
Чтобы узнать еще больше о Pandas подписывайся на канал.
Если вы что-то не поняли, читайте начальные статьи по работе с Pandas:
Установка Anaconda Navigator и Jupyter lab
Представление данных в Pandas
Получение информации о данных в датафрейме.
Операции со столбцами.