Pandas 熊猫:按第二个数据帧排序索引对数据帧列进行排序
假设我有两个数据帧(df1和df2): 我想按df2的字段对df1的列进行排序。我预计结果如下: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
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
命令来对列进行重新排序。