8

Как преобразовать индекс DataFrame в колонку в pandas?

3

Как преобразовать индекс датафрейма в столбец?

У меня есть датафрейм, который выглядит следующим образом:

        gi       ptt_loc
0  384444683      593  
1  384444684      594 
2  384444686      596  

и мне нужно преобразовать его в следующий формат:

    index1    gi       ptt_loc
0  0     384444683      593  
1  1     384444684      594 
2  2     384444686      596  

Подскажите, как можно это сделать с использованием Python и библиотеки pandas?

4 ответ(ов)

0

Для извлечения подиндекса в MultiIndex вы можете использовать следующий код:

df['si_name'] = R.index.get_level_values('si_name')

где si_name — это имя подиндекса. Убедитесь, что в вашем MultiIndex действительно присутствует уровень с таким именем.

0

Если вы хотите использовать метод reset_index и при этом сохранить существующий индекс, вы можете сделать это следующим образом:

df.reset_index().set_index('index', drop=False)

Если вы предпочитаете выполнить это изменение на месте, используйте:

df.reset_index(inplace=True)
df.set_index('index', drop=False, inplace=True)

Например:

print(df)
          gi  ptt_loc
0  384444683      593
4  384444684      594
9  384444686      596

После выполнения reset_index:

print(df.reset_index())
   index         gi  ptt_loc
0      0  384444683      593
1      4  384444684      594
2      9  384444686      596

Если вы используете reset_index и затем set_index:

print(df.reset_index().set_index('index', drop=False))
       index         gi  ptt_loc
index
0          0  384444683      593
4          4  384444684      594
9          9  384444686      596

Если вы хотите избавиться от метки индекса, вы можете сделать следующее:

df2 = df.reset_index().set_index('index', drop=False)
df2.index.name = None
print(df2)
   index         gi  ptt_loc
0      0  384444683      593
4      4  384444684      594
9      9  384444686      596

Таким образом, вы сохраняете исходный индекс и можете легко управлять его отображением.

0

Вы можете добавить индекс DataFrame в качестве нового столбца с помощью метода insert. Вот как это делается:

import pandas as pd

# Создаем DataFrame
df1 = pd.DataFrame({"gi": [232, 66, 34, 43], "ptt": [342, 56, 662, 123]})

# Получаем значения индекса
p = df1.index.values

# Вставляем новый столбец с индексом в начало DataFrame
df1.insert(0, column="new", value=p)

# Отображаем результат
print(df1)

После выполнения данного кода, ваш DataFrame будет выглядеть следующим образом:

   new   gi  ptt
0    0  232  342
1    1   66   56
2    2   34  662
3    3   43  123

Таким образом, вы успешно добавили новый столбец, содержащий значения индекса, к существующему DataFrame.

0

Я обычно делаю это следующим образом:

df = df.assign(index1=df.index)
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь