根据多个条件对df进行排序

时间:2020-06-27 19:09:09

标签: python pandas

我有一个如下所示的df

df:

product_x  year     total_price      total_sale
A          2016     50               200           
B          2016     200              100           
A          2017     250              250           
B          2017     1000             300           
A          2018     100              50           
B          2018     900              600
K          2016     20               300
D          2016     100              450

我想按如下所示对df进行排序。

product_x  year_c   total_price      total_sale
D          2016     100              450
A          2016     50               200           
B          2016     200              100
K          2016     20               300
B          2017     1000             300 
A          2017     250              250
B          2018     900              600
A          2018     100              50

优先选择的是year_c的升序,然后是toatal_sale的降序。

我尝试了以下代码。

df = df.sort_values(['year_c', 
                    'total_sale'], ascending=False)

2 个答案:

答案 0 :(得分:1)

应该可以。如果您希望各列的排序顺序不同,则可以将列表传递到ascending=

df = df.sort_values(['year_c', 
                'total_sale'], ascending=[True,False])

有关更多详细信息,请参阅文档:pd.DataFrame.sort_values()

答案 1 :(得分:1)

分别为每列定义排序顺序:

df.sort_values(['year_c', 'total_sale'], ascending=[True, False])

(按 year_c 递增,按 total_sale 递减)。

相关问题