DataFrames в Pandas являются основой манипулирования данными в Python. Их индексы часто содержат важную информацию, которую вы можете захотеть интегрировать в качестве столбцов. В этой статье подробно описаны различные методы преобразования индекса DataFrame в столбец и наоборот.
Содержание:
- Добавление индекса в качестве нового столбца
- Переименование столбца индекса после преобразования
- Преобразование столбца в индекс
- Работа со структурами MultiIndex
1. Добавление индекса в качестве нового столбца
Самый простой метод использует атрибут .index
:
import pandas as pd
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data)
df['index_col'] = df.index
print(df)
Это напрямую присваивает значения индекса новому столбцу с именем ‘index_col’.
2. Переименование столбца индекса после преобразования
Метод reset_index()
преобразует индекс в столбец, по умолчанию ‘index’. Используйте rename_axis()
для пользовательского именования:
import pandas as pd
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data)
df = df.rename_axis('original_index').reset_index()
print(df)
Это переименовывает результирующий столбец индекса в ‘original_index’.
3. Преобразование столбца в индекс
Чтобы выполнить обратную операцию, используйте set_index()
:
import pandas as pd
data = {'index_col': [0, 1, 2], 'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data)
df = df.set_index('index_col')
print(df)
Это устанавливает ‘index_col’ в качестве нового индекса DataFrame.
4. Работа со структурами MultiIndex
Для более сложных сценариев, включающих несколько уровней индекса, полезен MultiIndex. Давайте создадим MultiIndex из существующих столбцов, а затем сбросим его, чтобы добавить уровни в качестве столбцов:
import pandas as pd
data = {'level1': ['A', 'A', 'B', 'B'], 'level2': ['X', 'Y', 'X', 'Y'], 'value': [1, 2, 3, 4]}
df = pd.DataFrame(data)
df = df.set_index(['level1', 'level2']).reset_index()
print(df)
Это создает и затем преобразует MultiIndex в отдельные столбцы.
Эти методы предлагают универсальность в управлении индексами DataFrame, обеспечивая бесшовную интеграцию информации об индексе в качестве столбцов или наоборот, в соответствии с вашими конкретными потребностями в анализе данных.