python - Pandas 将索引的 level1 转换为列的 level 0

标签 python pandas multi-index

我在任何地方都找不到解决方案,所以我在这里询问。

我有一个如下所示的数据框。这里AB是MultiIndex的索引,CD是列标题。

A   B   C   D
a1  b1  0   4
a1  b2  1   5

如何切换第一级索引使其成为第 0 级列,以便我得到这样的结果 -

A/B        
          b1            b2
      C        D     C      D
a1    0        4     1      5

这似乎是对数据框的简单操作,但我找不到任何东西。

最佳答案

使用DataFrame.unstack ,但是有必要将 MultiIndex 更改为 DataFrame.swaplevelDataFrame.sort_index :

df = df.unstack().swaplevel(1,0, axis=1).sort_index(axis=1)
print (df)
B  b1    b2   
    C  D  C  D
A             
a1  0  4  1  5

或者来自@piRSquared的解决方案:

df = df.stack().unstack(0).T

关于python - Pandas 将索引的 level1 转换为列的 level 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60041708/

相关文章:

python - 自定义域的 GAE SSL 不可能吗?

python - PyQT5:如何使用单选按钮的状态灰显并停用行编辑

python - 在 pandas DataFrame 中删除列级别的方法链接解决方案

python - 在 Pandas Groupby 中使用列和行多索引值,无需拆栈

pandas - 计算 Pandas 中的行百分比

python - 如何删除多索引数据框中只有一个条目的行?

python - tensorflow rnn_decoder 对每个decoder_output执行softmax

python - 迭代 groupby 对象上 value_counts() 的结果

python - 如何根据文档相似度对文本数据进行分组?

python - 使用 python/pandas/seaborn 将分类数据绘制成相对频率的单个条形图