Pandas 熊猫:按第二个数据帧排序索引对数据帧列进行排序

Pandas 熊猫:按第二个数据帧排序索引对数据帧列进行排序,pandas,sorting,dataframe,indexing,Pandas,Sorting,Dataframe,Indexing,假设我有两个数据帧(df1和df2): 我想按df2的字段对df1的列进行排序。我预计结果如下: A1 C1 A2 B2 C2 0 1.0 2.0 3.0 4.0 5.0 1 1.0 2.0 3.0 4.0 5.0 2 1.0 2.0 3.0 4.0 5.0 3 1.0 2.0 3.0 4.0 5.0 4 1.0 2.0 3.0 4.0 5.0 换句话说,我如何按照以下方式对df1的列进行排序: df2.sort(col

假设我有两个数据帧(df1和df2):

我想按df2的字段对df1的列进行排序。我预计结果如下:

    A1   C1   A2   B2   C2
0  1.0  2.0  3.0  4.0  5.0
1  1.0  2.0  3.0  4.0  5.0
2  1.0  2.0  3.0  4.0  5.0
3  1.0  2.0  3.0  4.0  5.0
4  1.0  2.0  3.0  4.0  5.0
换句话说,我如何按照以下方式对df1的列进行排序:

df2.sort(columns=['Number','Letter']).index

Out[3]: Index(['A1', 'C1', 'A2', 'B2', 'C2'], dtype='object')

让我们使用
reindex\u轴

df1.reindex_axis(df2.sort_values(by=['Number','Letter']).index,axis=1)
输出:

    A1   C1   A2   B2   C2
0  1.0  2.0  3.0  4.0  5.0
1  1.0  2.0  3.0  4.0  5.0
2  1.0  2.0  3.0  4.0  5.0
3  1.0  2.0  3.0  4.0  5.0
4  1.0  2.0  3.0  4.0  5.0

让我们使用
reindex\u轴

df1.reindex_axis(df2.sort_values(by=['Number','Letter']).index,axis=1)
输出:

    A1   C1   A2   B2   C2
0  1.0  2.0  3.0  4.0  5.0
1  1.0  2.0  3.0  4.0  5.0
2  1.0  2.0  3.0  4.0  5.0
3  1.0  2.0  3.0  4.0  5.0
4  1.0  2.0  3.0  4.0  5.0

谢谢,但我不相信这会产生期望的结果,是吗?原始数据集中没有B1,因此您可以删除NA(axis=1)。尽管如此,我相信您需要使用
reindex\u axis
命令来重新排序列。谢谢,但我不相信这会产生期望的结果,是吗?原始数据集中没有B1,因此您可以dropna(axis=1)。尽管如此,我相信您需要
reindex\u axis
命令来对列进行重新排序。