Превратите панд мульти-индекс в столбец



у меня есть фрейм данных с 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


Как я могу лучше всего это сделать?



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

583   2  

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

    Ничего не найдено.