Reorder Multi-indexed dataframe columns based on reference

血红的双手。 提交于 2021-02-04 19:55:07

问题


I have a multi-indexed dataframe with names attached to the column levels. The data table looks something like this: (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 

I'd like to shuffle the columns around so that they match the order specified by the rows index of a reference dataframe (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

i.e. the result should be (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:


reindex_axis will use the labels from the other dataframe and let you specific the axis to reindex and also a particular level:

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


来源:https://stackoverflow.com/questions/40570679/reorder-multi-indexed-dataframe-columns-based-on-reference

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!