🔒 Как сбросить индекс в pandas и вернуть исходный порядок?
Чтобы сбросить индекс в Pandas, вы можете использовать метод reset_index()
. Этот метод удаляет текущий индекс и заменяет его на индекс по умолчанию от 0 до N-1. Вот пример:
import pandas as pd
# Создание DataFrame
data = {'Имя': ['Алексей', 'Мария', 'Иван'],
'Возраст': [25, 28, 30]}
df = pd.DataFrame(data)
# Сброс индекса
df = df.reset_index()
print(df)
В этом примере мы создали DataFrame с именами и возрастами и сбросили индекс с помощью метода reset_index()
. Результат будет DataFrame с новым индексом от 0 до N-1.
Детальный ответ
Как сбросить индекс в pandas
Библиотека pandas в Python предоставляет удобные инструменты для работы с данными. Одна из часто задаваемых вопросов новичков в pandas - "как сбросить индекс?". В этой статье я расскажу вам о нескольких способах, которые помогут вам сбросить индекс в pandas.
Метод reset_index()
Первый способ сбросить индекс в pandas - использовать метод reset_index(). Этот метод удаляет текущий индекс и заменяет его на целочисленный по порядку индекс.
import pandas as pd
# Создание примера DataFrame
data = {'Name': ['John', 'Emma', 'Anne'],
'Age': [25, 28, 31],
'City': ['New York', 'Paris', 'London']}
df = pd.DataFrame(data)
# Исходный DataFrame с индексом по умолчанию
print(df)
# Вывод:
# Name Age City
# 0 John 25 New York
# 1 Emma 28 Paris
# 2 Anne 31 London
# Сброс индекса
df_reset = df.reset_index()
# DataFrame после сброса индекса
print(df_reset)
# Вывод:
# index Name Age City
# 0 0 John 25 New York
# 1 1 Emma 28 Paris
# 2 2 Anne 31 London
Как видно из примера, метод reset_index() добавляет новый столбец 'index', содержащий старые значения индекса. Если вам не нужно сохранять старый индекс, вы можете добавить аргумент drop=True. Например, df.reset_index(drop=True).
Метод set_index()
Еще один способ изменить индекс в pandas - использовать метод set_index(). Этот метод позволяет установить новый столбец или столбцы в качестве индекса DataFrame.
# Исходный DataFrame
print(df_reset)
# Вывод:
# index Name Age City
# 0 0 John 25 New York
# 1 1 Emma 28 Paris
# 2 2 Anne 31 London
# Установка столбца 'Name' в качестве индекса
df_set_index = df_reset.set_index('Name')
# DataFrame после установки индекса
print(df_set_index)
# Вывод:
# index Age City
# Name
# John 0 25 New York
# Emma 1 28 Paris
# Anne 2 31 London
В примере выше мы использовали столбец 'Name' в качестве нового индекса. Теперь столбец 'Name' стал индексом, а столбец 'index' исчез. Метод set_index() также может принимать несколько столбцов для создания мультииндекса.
Метод droplevel()
Если вы создали мультииндекс с помощью метода set_index() и хотите удалить один или несколько уровней индекса, вы можете использовать метод droplevel().
# Исходный DataFrame с мультииндексом
index = pd.MultiIndex.from_tuples([('John', 25), ('Emma', 28), ('Anne', 31)], names=['Name', 'Age'])
df_multiindex = pd.DataFrame(data, index=index, columns=['City'])
# Вывод DataFrame с мультииндексом
print(df_multiindex)
# Вывод:
# City
# Name Age
# John 25 New York
# Emma 28 Paris
# Anne 31 London
# Сброс одного уровня индекса
df_droplevel = df_multiindex.droplevel('Age')
# DataFrame после сброса одного уровня индекса
print(df_droplevel)
# Вывод:
# City
# Name
# John New York
# Emma Paris
# Anne London
Метод droplevel() позволяет сбросить указанный уровень индекса. В примере выше, мы сбросили уровень индекса 'Age', и остался только уровень 'Name'.
Заключение
Теперь вы знаете несколько способов сбросить индекс в pandas. Методы reset_index(), set_index() и droplevel() могут быть полезны при работе с индексами в DataFrame. Попробуйте их в своих проектах и экспериментах, чтобы лучше усвоить эти методы.
Надеюсь, этот материал был для вас полезен и помог вам лучше понять, как сбросить индекс в pandas. Удачи в вашем путешествии в мир анализа данных с помощью pandas!