Рубрики
Без рубрики

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

Pandas переименовывает столбец и индекс с использованием функции Rename (). Мы можем переименовать одноместные и несколько столбцов, Inflace переименовать, переименовать, используя функцию Dict или Mapper.

Автор оригинала: Pankaj Kumar.

Иногда мы хотим переименовать столбцы и индексы в объекте PandaFrame PandaS. Мы можем использовать функцию Pandas DataFrame Rename () для переименования столбцов и индексов. Он поддерживает следующие параметры.

  • Mapper : словарь или функция для применения к столбцам и индексам. Параметр «AXIS» определяет целевую ось – столбцы или индексы.
  • индекс : Должен быть словар или функция, чтобы изменить имена индекса.
  • Колонны : Должен быть словар или функция, чтобы изменить имена столбцов.
  • Ось : Может быть int или строка. Он используется с параметром «Mapper», чтобы определить целевую ось. Допустимые значения («индекс», «столбцы») или число (0, 1). Значение по умолчанию является «индексом».
  • в помещении : Если true, файл dataframe изменяется. В противном случае возвращается новый dataframe и текущий dataframe остается без изменений. Значение по умолчанию неверно’.
  • Уровень : Может быть INT или имя уровня. Он используется в случае многоиндекса, только переименовывает этикетки на указанном уровне.
  • Ошибки : Возможные значения («игнорируйте», «Rising»), по умолчанию «игнорировать». Если указано как «ROING», то keyError поднят, когда поднимается «Mapper», «Index» или «столбцы» или «столбцы», которые не присутствуют в преобразовании индекса. Если «игнорировать», существующие ключи будут переименованы, и дополнительные ключи будут игнорироваться.

Некоторые важные моменты о функции Rename ().

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

Давайте посмотрим на некоторые примеры использования функции Pandas Rename ().

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

import pandas as pd

d1 = {'Name': ['Pankaj', 'Lisa', 'David'], 'ID': [1, 2, 3], 'Role': ['CEO', 'Editor', 'Author']}

df = pd.DataFrame(d1)

print('Source DataFrame:\n', df)

# rename columns
df1 = df.rename(columns={'Name': 'EmpName', 'ID': 'EmpID', 'Role': 'EmpRole'})
print('Result DataFrame:\n', df1)

Выход:

Source DataFrame:
      Name  ID    Role
0  Pankaj   1     CEO
1    Lisa   2  Editor
2   David   3  Author
Result DataFrame:
   EmpName  EmpID EmpRole
0  Pankaj      1     CEO
1    Lisa      2  Editor
2   David      3  Author

Вышеупомянутый Rename () вызов функции также может быть написан следующим образом.

df1 = df.rename(mapper={'Name': 'EmpName', 'ID': 'EmpID', 'Role': 'EmpRole'},
                axis='columns')  # axis=1 corresponds to columns

Ясно, что использование аргументов ключевых слов яснее, чем использование аргументов Mapper и Axis.

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

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

df1 = df.rename(columns={'Name': 'EmpName'})
print(df1)

Выход:

  EmpName  ID    Role
0  Pankaj   1     CEO
1    Lisa   2  Editor
2   David   3  Author

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

df1 = df.rename(columns={'Name': 'EmpName', 'X': 'Y'})  # same result since there is no X column

3. Пандас переименовывает индексы

Если вы хотите переименовать индексы, пройдите Dict для параметра «Индекс».

df2 = df.rename(index={0: '#0', 1: '#1', 2: '#2'})
print('Renamed Indexes:\n', df2)

Выход:

Renamed Indexes:
       Name  ID    Role
#0  Pankaj   1     CEO
#1    Lisa   2  Editor
#2   David   3  Author

Мы также можем переименовать индексы, используя аргументы Mapper и Axis.

df2 = df.rename({0: '#0', 1: '#1', 2: '#2'}, axis=0)  
# axis='index' will work, first argument is assigned to 'mapper'

4. Пандас переименовать один индекс

df2 = df.rename(index={1: '#1'})
print(df2)

Выход:

      Name  ID    Role
0   Pankaj   1     CEO
#1    Lisa   2  Editor
2    David   3  Author

5. Изменение DataFrame Inplace

Если вы хотите изменить само по себе исходный файл DataFrame, пройдите аргумент Inflace как True.

import pandas as pd

d1 = {'Name': ['Pankaj', 'Lisa', 'David'], 'ID': [1, 2, 3], 'Role': ['CEO', 'Editor', 'Author']}

df = pd.DataFrame(d1)

print('Source DataFrame:\n', df)

df.rename(index={0: '#0', 1: '#1', 2: '#2'}, columns={'Name': 'EmpName', 'ID': 'EmpID', 'Role': 'EmpRole'}, inplace=True)

print('Source DataFrame:\n', df)

Выход:

Source DataFrame:
      Name  ID    Role
0  Pankaj   1     CEO
1    Lisa   2  Editor
2   David   3  Author

Source DataFrame:
    EmpName  EmpID EmpRole
#0  Pankaj      1     CEO
#1    Lisa      2  Editor
#2   David      3  Author

6. Использование функции Mapper для переименования столбцов

df = pd.DataFrame({'NAME': ['Pankaj', 'Lisa'], 'ID': [1, 2], 'ROLE': ['CEO', 'Editor']})
print(df)

df.rename(mapper=str.lower, axis=1, inplace=True)
print(df)

Выход:

     NAME  ID    ROLE
0  Pankaj   1     CEO
1    Lisa   2  Editor

     name  id    role
0  Pankaj   1     CEO
1    Lisa   2  Editor

7. Использование функций для переименования столбцов и индексов

import pandas as pd
import math

df = pd.DataFrame({'NAME': ['Pankaj', 'Lisa'], 'ID': [1, 2], 'ROLE': ['CEO', 'Editor']})

df.rename(columns=str.lower, index=math.degrees, inplace=True)
print(df)

Выход:

            name  id    role
0.00000   Pankaj   1     CEO
57.29578    Lisa   2  Editor

8. Строгая переименовать и поднимая клейрору

import pandas as pd

df = pd.DataFrame({'NAME': ['Pankaj', 'Lisa'], 'ID': [1, 2], 'ROLE': ['CEO', 'Editor']})

df1 = df.rename(columns={'Salary': 'EmpSalary'})  # unmatched mappings are ignored

df1 = df.rename(columns={'Salary': 'EmpSalary'}, errors='raise')  # unmatched mappings raising KeyError

Выход:

Traceback (most recent call last):
  File "/Users/pankaj/Documents/PycharmProjects/hello-world/journaldev/pandas/pandas_rename_column.py", line 58, in 
    df1 = df.rename(columns={'Salary': 'EmpSalary'}, errors='raise')
KeyError: "['Salary'] not found in axis"

9. Ссылки