如何在熊猫中对多列进行切片并相对于另一列对值进行排序



数据帧中有多个列。我想切片三列并使用另一列对它们进行排序。 我尝试过这样的事情。

imdb.loc[:5, ['A', 'B','C']].sort_values(['D']) 
O/P:
A B C
1 2 3
4 5 6
7 8 9

或者,您也可以使用返回排序值索引以及locseries.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)

最新更新