переименовать индекс dataframe python

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

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

У меня есть отредактированные имена столбцов, которые хранятся в списке, но я не знаю, как заменить имена столбцов.

21 ответ

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

Панды 0.21+ Ответ

Произошли некоторые существенные обновления переименования столбцов в версии 0.21.

Примеры для панд 0.21+

Построить образец DataFrame:

Использование rename с axis=’columns’ или axis=1

Оба приводят к следующему:

Еще можно использовать сигнатуру старого метода:

Функция rename также принимает функции, которые будут применяться к каждому имени столбца.

Использование set_axis со списком и inplace=False

Нет ничего плохого в том, чтобы напрямую присваивать столбцы. Это совершенно хорошее решение.

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

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

Если бы у вас был словарь, связанный со старыми именами столбцов и новыми именами столбцов, вы могли бы сделать следующее:

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

Мой метод является общим, в котором вы можете добавить дополнительные разделители, разделяя запятую delimiters= запятой и сохраняя ее в будущем.

Источник

Возможности объектов Index в pandas / pd 3

В отличие от других структур данных в Python pandas не только пользуется преимуществами высокой производительности массивов NumPy, но и добавляет в них индексы.

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

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

Переиндексирование df.reindex()

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

Существует даже возможность получить новую структуру из уже существующей, где правила индексирования заданы заново.

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

В этом случае значения индексов 1 и 2 равны 5, которое принадлежит индексу 3.

itemcolorspricenewobject
id
0blue1.2blueball
1green1.0greenpen
2yellow3.3yellowpencil
3red0.9redpaper
4white1.7whitemug

Удаление

Еще одна операция, связанная с объектами Index — удаление. Удалить строку или колонку не составит труда, потому что метки используются для обозначения индексов и названий колонок.

Например, возьмем в качестве примера случай, где из объекта нужно удалить один элемент. Для этого определим базовый объект Series из четырех элементов с 4 отдельными метками.

Для удаления большего количества элементов, передайте массив с соответствующими индексами.

ballpenpencilpaper
red0123
blue4567
yellow891011
white12131415

Для удаления строк просто передайте индексы строк.

ballpenpencilpaper
red0123
white12131415
ballpaper
red03
blue47
yellow811
white1215

Арифметика и выравнивание данных

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

В качестве примера можно взять два объекта Series с разными метками.

При использовании Dataframe выравнивание работает по тому же принципу, но проводится и для рядов, и для колонок.

Источник

Rename Pandas DataFrame Index

I’ve a csv file without header, with a DateTime index. I want to rename the index and column name, but with df.rename() only the column name is renamed. Bug? I’m on version 0.12.0

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

9 Answers 9

The rename method takes a dictionary for the index which applies to index values.
You want to rename to index level’s name:

A good way to think about this is that columns and index are the same type of object ( Index or MultiIndex ), and you can interchange the two via transpose.

This is a little bit confusing since the index names have a similar meaning to columns, so here are some more examples:

You can see the rename on the index, which can change the value 1:

Whilst renaming the level names:

Note: this attribute is just a list, and you could do the renaming as a list comprehension/map.

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

The currently selected answer does not mention the rename_axis method which can be used to rename the index and column levels.

Pandas has some quirkiness when it comes to renaming the levels of the index. There is also a new DataFrame method rename_axis available to change the index level names.

Let’s take a look at a DataFrame

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

This DataFrame has one level for each of the row and column indexes. Both the row and column index have no name. Let’s change the row index level name to ‘names’.

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

The rename_axis method also has the ability to change the column level names by changing the axis parameter:

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

If you set the index with some of the columns, then the column name will become the new index level name. Let’s append to index levels to our original DataFrame:

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

Notice how the original index has no name. We can still use rename_axis but need to pass it a list the same length as the number of index levels.

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

You can use None to effectively delete the index level names.

Series work similarly but with some differences

Let’s create a Series with three index levels

We can use rename_axis similarly to how we did with DataFrames

We can pass a string name to the rename method to change it

DataFrames do not have this attribute and infact will raise an exception if used like this

Prior to pandas 0.21, you could have used rename_axis to rename the values in the index and columns. It has been deprecated so don’t do this

Источник

Python | Изменить имена столбцов и индексы строк в Pandas DataFrame

Учитывая Pandas DataFrame, давайте посмотрим, как изменить имена его столбцов и индексы строк.

О Pandas DataFrame
Pandas DataFrame — это прямоугольные сетки, которые используются для хранения данных. Это легко визуализировать и работать с данными, когда хранятся в dataFrame.

Тип Pandas Dataframe имеет два атрибута, называемых «столбцы» и «индекс», которые можно использовать для изменения имен столбцов, а также индексов строк.

Создать DataFrame, используя словарь.

# сначала импортировать библиотеки

import pandas as pd

# Создать dataFrame, используя словарь

# Создает dataFrame с
# 2 столбца и 4 строки
df

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

# Давайте переименуем уже созданный dataFrame.

# Проверьте текущие имена столбцов
# используя атрибут «столбцы».
# df.columns

# Изменить имена столбцов

# Изменить индексы строк

# печать фрейма данных
df

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

# давайте изменим имя первого столбца
# от «A» до «a» с помощью функции rename ()

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

Изменить несколько имен столбцов одновременно —

# Мы можем изменить несколько имен столбцов
# передача словаря старых имен и
# новые имена для функции rename ().

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

Лямбда-функция — это небольшая анонимная функция, которая может принимать любое количество аргументов, но может иметь только одно выражение. Используя лямбда-функцию, мы можем изменить все имена столбцов одновременно. Давайте добавим ‘x’ в конце имени каждого столбца, используя лямбда-функцию

df = df.rename(columns = lambda x: x + ‘x’ )

# это изменит все имена столбцов
df

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

Давайте изменим индекс строки, используя функцию Lambda.

# Чтобы изменить индексы строк

# это увеличит значение индекса строки на 10 для каждой строки

df = df.rename(index = lambda x: x + 10 )

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

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

columns = lambda x: x + ‘x’ )

# увеличить все метки индекса строки на значение 5
# добавьте значение ‘x’ в конце имени каждого столбца.
df

Источник

Переименовать Pandas DataFrame Index

7 ответов

Хороший способ подумать об этом заключается в том, что столбцы и индекс имеют один и тот же тип объекта ( Index или MultiIndex ), и вы можете поменять их местами с помощью транспонирования.

Это немного сбивает с толку, так как имена индексов имеют значение, аналогичное столбцам, поэтому вот еще несколько примеров:

Вы можете увидеть переименование в индексе, которое может изменить значение 1:

Переименовывая имена уровней:

Примечание: этот атрибут является просто списком, и вы можете сделать переименование в виде списка / карты.

Вы также можете использовать Index.set_names следующим образом:

Панды имеют некоторую причудливость, когда дело доходит до переименования уровней индекса. Также доступен новый метод DataFrame rename_axis для изменения имен на уровне индекса.

Давайте посмотрим на DataFrame

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

Этот DataFrame имеет один уровень для каждого индекса строки и столбца. И индекс строки, и столбец не имеют имени. Давайте изменим имя уровня индекса строки на «имена».

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

Метод rename_axis также имеет возможность изменять имена уровней столбцов, изменяя параметр axis :

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

Если вы установите индекс для некоторых столбцов, то имя столбца станет именем нового уровня индекса. Давайте добавим уровни индекса к нашему исходному DataFrame:

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

переименовать индекс dataframe python. Смотреть фото переименовать индекс dataframe python. Смотреть картинку переименовать индекс dataframe python. Картинка про переименовать индекс dataframe python. Фото переименовать индекс dataframe python

Вы можете использовать None для эффективного удаления имен уровня индекса.

Сериалы работают аналогично, но с некоторыми отличиями

Давайте создадим серию с тремя уровнями индекса

Мы можем использовать rename_axis аналогично тому, как мы это делали с DataFrames

DataFrames не имеют этого атрибута, и infact вызовет исключение, если используется так

До появления панды 0.21 вы могли бы использовать rename_axis для переименования значений в индексе и столбцах. Это устарело, так что не делайте этого

Если вы хотите использовать одно и то же отображение для переименования обоих столбцов и индекса, вы можете сделать следующее:

Это единственный, кто выполняет эту работу за меня (панды 0.22.0).
Без inplace = True, имя индекса не устанавливается в моем случае.

Для более новых pandas версий

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *