Превратите панд мульти-индекс в столбец
у меня есть фрейм данных с 2 уровнями индекса:
value
Trial measurement
1 0 13
1 3
2 4
2 0 NaN
1 12
3 0 34
который я хочу превратить в это:
Trial measurement value
1 0 13
1 1 3
1 2 4
2 0 NaN
2 1 12
3 0 34
Как я могу лучше всего это сделать?
мне это нужно, потому что я хочу агрегировать данные, как указано здесь, но я не могу выбрать мои столбцы, если они используются в качестве индексов.
2 ответов:
The reset_index () это метод pandas DataFrame, который будет передавать значения индекса в DataFrame в виде столбцов. Значение параметра по умолчанию -drop=False (который будет хранить значения индекса в виде столбцов).
все, что вам нужно сделать-добавить
.reset_index(inplace=True)после имени фрейма данных:df.reset_index(inplace=True)
это действительно не относится к вашему делу, но это может быть полезно для других (как я 5 минут назад), чтобы знать. Если один из multindex имеют те же имена, как это:
value Trial Trial 1 0 13 1 3 2 4 2 0 NaN 1 12 3 0 34
df.reset_index(inplace=True)не удастся вызвать столбцы, которые создаются не могут совместно использовать имена.так что вам нужно переименовать multindex с
df.index = df.index.set_names(['Trial', 'measurement'])для:value Trial measurement 1 0 13 1 1 3 1 2 4 2 0 NaN 2 1 12 3 0 34а то
df.reset_index(inplace=True)будет работать как шарм.я столкнулся с этой проблемой после группировки по годам и месяцам На a datetime-столбец (не Индекс) называется
live_date, что означало, что и год и месяц были названыlive_date.
Comments