如何对多列进行切片并对熊猫中的另一列进行排序

时间:2020-06-03 15:05:20

标签: pandas pandas-groupby

一个数据框中有多个列。我想将三列切成薄片,然后使用另一列对其进行排序。 我尝试过这样的事情。

imdb.loc[:5, ['A', 'B','C']].sort_values(['D']) 

O/P:
A B C
1 2 3
4 5 6
7 8 9

2 个答案:

答案 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)