一个数据框中有多个列。我想将三列切成薄片,然后使用另一列对其进行排序。 我尝试过这样的事情。
imdb.loc[:5, ['A', 'B','C']].sort_values(['D'])
O/P:
A B C
1 2 3
4 5 6
7 8 9
答案 0 :(得分:2)
或者,您也可以使用series.argsort
来返回排序值的索引以及loc
:
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
答案 1 :(得分:0)
您可以对全部四个切片,对值进行排序并拖放
imdb.loc[:5, ['A','B','C','D']].sort_values('D').drop('D', axis=1)