问题
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