#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
У меня есть фрейм данных с датой в качестве индекса и 35 столбцами. Имя столбцов — это имя запаса. Значения представляют доходность акций.
Я хочу преобразовать этот фрейм данных в многоиндексный фрейм данных с датой в качестве индекса 1-го уровня и названием акции в качестве индекса 2-го уровня и единственным столбцом, показывающим возвращаемое значение акций.
Я уже пробовал это, но я не получил ожидаемый фрейм данных.
df.set_axis(df.columns.str.split(' ', 1, expand=True), 1, 0).stack(0)
Я ожидаю чего-то подобного этому примеру.
Ответ №1:
Использование:
df.stack().rename('value_col').to_frame()
где df
находится ваш фрейм данных с ‘Date’ в качестве индекса.
Комментарии:
1. вау. Это так здорово. Сработало как шарм. Большое вам спасибо. Имя второго индекса по-прежнему остается пустым. Как я могу назвать индекс второго уровня как «Stock»?
2. Привет, @Dan! Вы можете сделать это, вызвав
.rename_axis(index={None:'sec_level'})
before.to_frame()
. Лучший!