Как переиндексировать dataframe pandas: простой гид с примерами 🔍

Чтобы переиндексировать DataFrame в pandas, вы можете использовать метод reindex. Этот метод позволяет изменить индексы строк и/или столбцов DataFrame.

Вот простой пример:


import pandas as pd

# Создание DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# Переиндексация строк
df = df.reindex([2, 0, 1])

# Переиндексация столбцов
df = df.reindex(columns=['B', 'A'])

print(df)

Выполнение этого кода приведет к следующему результату:


   B  A
2  6  3
0  4  1
1  5  2

В этом примере мы сначала создаем DataFrame с индексами по умолчанию (0, 1, 2) и столбцами 'A' и 'B'. Затем мы используем метод reindex, чтобы изменить порядок строк на [2, 0, 1] и порядок столбцов на ['B', 'A']. Результатом будет переиндексированный DataFrame.

Детальный ответ

Как переиндексировать dataframe в pandas

Переиндексация dataframe в pandas — это процесс изменения индексов строк и/или столбцов в существующем dataframe. Это может быть полезно для изменения порядка или добавления новых индексов, а также для обновления или удаления существующих. В этой статье мы рассмотрим различные способы переиндексации dataframe в pandas.

Переиндексация строк

Для переиндексации строк в dataframe в pandas можно использовать метод reindex(). Он позволяет изменить порядок строк и/или добавить новые строки с указанными индексами.

import pandas as pd

# Создание примера dataframe
data = {'Name': ['John', 'Emma', 'Sam'],
        'Age': [25, 28, 30],
        'City': ['New York', 'London', 'Paris']}

df = pd.DataFrame(data)

# Переиндексация строк
new_index = [2, 0, 1]  # Новый порядок индексов строк

df_reindexed = df.reindex(new_index)

print(df_reindexed)

В результате выполнения приведенного выше кода получим:

Output:

Name  Age      City
2   Sam   30     Paris
0  John   25  New York
1  Emma   28    London

Как видно из вывода, порядок строк в новом dataframe изменился в соответствии с указанными индексами.

Переиндексация столбцов

Для переиндексации столбцов в dataframe в pandas можно использовать метод reindex() в сочетании с параметром columns. Он позволяет изменить порядок столбцов и/или добавить новые столбцы с указанными именами.

import pandas as pd

# Создание примера dataframe
data = {'Name': ['John', 'Emma', 'Sam'],
        'Age': [25, 28, 30],
        'City': ['New York', 'London', 'Paris']}

df = pd.DataFrame(data)

# Переиндексация столбцов
new_columns = ['City', 'Age', 'Name']  # Новый порядок индексов столбцов

df_reindexed = df.reindex(columns=new_columns)

print(df_reindexed)

В результате выполнения приведенного выше кода получим:

Output:

       City  Age  Name
0  New York   25  John
1    London   28  Emma
2     Paris   30   Sam

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

Обновление индексов строк и столбцов

Метод reindex() также может использоваться для обновления существующих индексов строк и столбцов.

import pandas as pd

# Создание примера dataframe
data = {'Name': ['John', 'Emma', 'Sam'],
        'Age': [25, 28, 30],
        'City': ['New York', 'London', 'Paris']}

df = pd.DataFrame(data)

# Изменение индексов строк и столбцов
new_index = [0, 1, 2]
new_columns = ['Name', 'Age', 'City']

df_reindexed = df.reindex(index=new_index, columns=new_columns)

print(df_reindexed)

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

Output:

   Name  Age      City
0  John   25  New York
1  Emma   28    London
2   Sam   30     Paris

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

Удаление строк или столбцов

Метод reindex() также может использоваться для удаления строк или столбцов с помощью параметра index или columns.

Для удаления строк:

import pandas as pd

# Создание примера dataframe
data = {'Name': ['John', 'Emma', 'Sam'],
        'Age': [25, 28, 30],
        'City': ['New York', 'London', 'Paris']}

df = pd.DataFrame(data)

# Удаление строк по индексам
rows_to_drop = [1]  # Индексы строк для удаления

df_reindexed = df.reindex(index=df.index.difference(rows_to_drop))

print(df_reindexed)

Для удаления столбцов:

import pandas as pd

# Создание примера dataframe
data = {'Name': ['John', 'Emma', 'Sam'],
        'Age': [25, 28, 30],
        'City': ['New York', 'London', 'Paris']}

df = pd.DataFrame(data)

# Удаление столбцов по именам
columns_to_drop = ['Age']  # Имена столбцов для удаления

df_reindexed = df.reindex(columns=df.columns.difference(columns_to_drop))

print(df_reindexed)

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

В этой статье мы рассмотрели основные методы переиндексации dataframe в pandas. Вы можете использовать эти методы для изменения порядка индексов, добавления новых индексов и удаления существующих. Попробуйте применить их в ваших проектах!

Видео по теме

Pandas Базовый №1. Создание DataFrame и запись в CSV

Pandas Базовый №4. Операции со столбцами DataFrame

Основы Pandas Python | Series, DataFrame И Анализ Данных

Похожие статьи:

Как переиндексировать dataframe pandas: простой гид с примерами 🔍