基于参考,重新排序多层索引数据框的列

3

我有一个多级索引的数据框,每个列级别都附有名称。 数据表看起来像这样: (df1)

                        TIME                    
         TMC    111N1   111P2   111N3   111P4   
DATE    EPOCH                   
          0     143     113      103    NaN 
          1     183     NaN      NaN    NaN 
          2     NaN     NaN      NaN    NaN 
          3     143     NaN      NaN    NaN 

我想要打乱列的顺序,使其与参考数据框(df2)行索引指定的顺序相匹配。
        A1  A2  A3    A4    A5
 Name                                                                               
 111N3  PA  PL  er  0.75543 35
 111P4  PA  PL  er  0.09413 35
 111N1  PA  PL  er  4.21557 35
 111P2  PA  PL  er  1.31989 35

即结果应为(df3):
                        TIME                    
         TMC    111N3   111P4   111N1   111P2   
DATE    EPOCH                   
          0     103     NaN      143    113 
          1     NaN     NaN      183    NaN 
          2     NaN     NaN      NaN    NaN 
          3     NaN     NaN      143    NaN 
1个回答

3

reindex_axis 函数将使用另一个数据框中的标签,并允许您指定要重新索引的轴以及特定级别:

df1.reindex_axis(df2.index, axis=1, level=1)

谢谢!它起作用了。我只是稍微修改了一下:'df1.reindex_axis(df2.index, axis=1, level=1)' - GB7
1
以下是相同问题的一些糟糕答案:https://dev59.com/PWgu5IYBdhLWcg3wnoWChttps://dev59.com/hq3la4cB1Zd3GeqPU_VP - bonney
1
reindex_axis自版本0.21.0起已被弃用:请使用reindex代替。 - Ferro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接