Reindex dataframe multiindex - PullRequest
       77

Reindex dataframe multiindex

1 голос
/ 18 июня 2020

У меня есть фрейм данных с мультииндексом строки и столбца, подобный этому

            BLUB      BLA     
            A    B    C    D
sample
0      blub ...  ...
1      blub ...
2      blub
3      blub
4      blub
0      blub
1      blub
2      blub
...    ...

Я хотел бы переиндексировать этот

            BLUB      BLA     
            A    B    C    D
sample
0      blub ...  ...
1      blub ...
2      blub
3      blub
4      blub
5      blub
6      blub
7      blub
...    ...

неизменным способом (копирование фрейма данных, не меняя его на место). Как мне этого добиться?

1 Ответ

1 голос
/ 18 июня 2020

Так как MultiIndex in index вы можете создать индекс по умолчанию по первому уровню MultiIndex, DataFrame.reset_index и DataFrame.set_index:

df = (df.reset_index(level=1)
        .reset_index(drop=True)
        .set_index('level_1', append=True)
        .rename_axis(['sample', None]))

Или по MultiIndex.from_arrays:

mux = pd.MultiIndex.from_arrays([np.arange(len(df)), 
                                 df.index.get_level_values(1)], 
                                names=['sample', None])
df = df.set_index(mux)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...