数据帧中有多个列。我想切片三列并使用另一列对它们进行排序。 我尝试过这样的事情。
imdb.loc[:5, ['A', 'B','C']].sort_values(['D'])
O/P:
A B C
1 2 3
4 5 6
7 8 9
或者,您也可以使用返回排序值索引以及loc
的series.argsort
:
df.loc[df['D'].argsort(),['A','B','C']]
例:
np.random.seed(0)
df = pd.DataFrame(np.random.randint(0,10,(5,4)),columns=list('ABCD'))
print(df)
A B C D
0 5 0 3 3
1 7 9 3 5
2 2 4 7 6
3 8 8 1 6
4 7 7 8 1
print(df.loc[df['D'].argsort(),['A','B','C']])
A B C
4 7 7 8
0 5 0 3
1 7 9 3
2 2 4 7
3 8 8 1
您可以对所有四个切片,对值进行排序并删除
imdb.loc[:5, ['A','B','C','D']].sort_values('D').drop('D', axis=1)