如何按行对数据框进行排序?

yen*_*eng 0 python dataframe pandas

我有一个数据帧:

import pandas as pd

df = pd.DataFrame(data={'x':[7,1,9], 'y':[4,5,6],'z':[1,8,3]}, index=['a', 'b', 'c'])
Run Code Online (Sandbox Code Playgroud)

表明:

在此输入图像描述

如何按行['a']对此数据帧进行排序:对数据帧进行排序后,可能是:

在此输入图像描述

unu*_*tbu 5

In [7]: df.iloc[:, np.argsort(df.loc['a'])]
Out[7]: 
   z  y  x
a  1  4  7
b  8  5  1
c  3  6  9
Run Code Online (Sandbox Code Playgroud)

np.argsort返回用于对a行进行排序的索引df.loc['a']:

In [6]: np.argsort(df.loc['a'])
Out[6]: 
x    2
y    1
z    0
Name: a, dtype: int64
Run Code Online (Sandbox Code Playgroud)

获得这些索引后,可以使用它们对df(通过使用df.iloc)的列重新排序.