繁体   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