【问题标题】:Reindex dataframe multiindex重新索引数据帧多索引
【发布时间】:2020-06-18 18:50:23
【问题描述】:

我有一个这样的行列多索引数据框

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

以不可变的方式(复制数据框,而不是原地更改)。我怎样才能做到这一点?

【问题讨论】:

  • 你能添加一些数据吗?因为很难理解copying the dataframe, not changing it in place。

标签: python pandas dataframe multi-index


【解决方案1】:

因为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)

【讨论】:

  • 非常感谢。你提到的第一种方法对我有用。 (我没有尝试过第二种方法。)
猜你喜欢
  • 1970-01-01
  • 2019-05-16
  • 2020-04-16
  • 1970-01-01
  • 1970-01-01
  • 2021-01-12
  • 2016-06-13
  • 2021-01-28
相关资源
最近更新 更多