首页 > 解决方案 > 通过重新排序一列重新排序您的数据框

问题描述

有一个如下所示的数据框:

import pandas as pd 

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                    'B': ['B0', 'B1', 'B2', 'B3'],
                    'C': ['C0', 'C1', 'C2', 'C3'],
                    'D': ['D0', 'D1', 'D2', 'D3']},
                    index=[0, 1, 2, 3])

我想知道当一列中的顺序不同而希望应用于所有其他列时如何重新排列数据框,例如在本例中更改了 A 列?

 df2 = pd.DataFrame({'A': ['A3', 'A0', 'A2', 'A1'],
                     'B': ['B3', 'B0', 'B2', 'B1'],
                     'C': ['C3', 'C0', 'C2', 'C1'],
                     'D': ['D3', 'D0', 'D2', 'D1']},
                     index=[0, 1, 2, 3])

标签: pythonpandassortingdataframeindexing

解决方案


set_index您可以通过和reindex使用索引reset_index。假设您的值A是唯一的,这是唯一可以进行这种转换的情况。

L = ['A3', 'A0', 'A2', 'A1']

res = df1.set_index('A').reindex(L).reset_index()

print(res)

    A   B   C   D
0  A3  B3  C3  D3
1  A0  B0  C0  D0
2  A2  B2  C2  D2
3  A1  B1  C1  D1

推荐阅读