根据列的值对列进行排序。大熊猫

时间:2020-02-16 18:41:50

标签: python pandas

df1

ITEM      CATEGORY       COLOR     LOCATION      PRICE

23661      BIKE          BLUE        A           30000
23661      BIKE          BLUE        B           43563
23661      BIKE          BLUE        C           45124
23661      BIKE          BLUE        D           28000
48684      CAR           RED         B           45145
48684      CAR           RED         D           35613
48684      CAR           RED         A           82312
48684      CAR           RED         C           24536
48684      CAR           RED         E           45613
54519      BIKE          BLACK       A           21345
54519      BIKE          BLACK       B           62623
54519      BIKE          BLACK       C           14613
54519      BIKE          BLACK       E           14365
54519      BIKE          BLACK       D           67353

期望结果是车辆价格最高的位置。

ITEM      CATEGORY       COLOR     LOCATION      PRICE

23661      BIKE          BLUE        C           45124
48684      CAR           RED         A           82312
54519      BIKE          BLACK       D           67353

df.sort_values(df['PRICE'], ascending=False, kind='quicksort')使用此代码,我们可以手动一个接一个地做。如何在整个df中执行此操作。

2 个答案:

答案 0 :(得分:2)

sort_values + drop_duplicates

df.sort_values(['ITEM','PRICE'],ascending=[True,False]).drop_duplicates('ITEM')

     ITEM CATEGORY  COLOR LOCATION  PRICE
2   23661     BIKE   BLUE        C  45124
6   48684      CAR    RED        A  82312
13  54519     BIKE  BLACK        D  67353

答案 1 :(得分:0)

U可以在颜色列上进行分组,然后对价格应用排序功能:类似df.groupby([“ COLOR”])。apply(lambda x:x.sort_values([“ PRICE”]],升序= False ))