Как переиндексировать 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. Вы можете использовать эти методы для изменения порядка индексов, добавления новых индексов и удаления существующих. Попробуйте применить их в ваших проектах!