簡體   English   中英

重新索引 dataframe 多索引

[英]Reindex dataframe multiindex

我有一個 dataframe 像這樣的行和列多索引

            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
...    ...

以不可變的方式(復制 dataframe,而不是原地更改)。 我怎樣才能做到這一點?

因為MultiIndex in index您可以通過DataFrame.reset_indexDataFrame.set_index的第一級MultiIndex創建默認索引:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM