【问题标题】:Python Pandas: sort a dataframe by multiple columns but different sorting orderPython Pandas:按多列对数据框进行排序,但排序顺序不同
【发布时间】:2021-03-27 16:39:32
【问题描述】:

我有一个关于在 Pandas 中对数据框进行排序的问题。
例如,我有一个数据框“df_cars”,其中包含“Year”、“Model”、“Mileage”、“Price”列。
我想显示按“年份”(desc)和“里程”(asc)排序的数据框。
我知道如何按多个列排序,但顺序相同(asc/或 desc):
print(df_cars.sort_values(by=['Year','Price'], inplace = False, ascending = True)

“年份”和“价格”的值都将按升序排列。
但是,如果我在同一年有多个值,并且想按升序查看年份和降序查看价格。
我该怎么办?
提前致谢。

【问题讨论】:

  • ascending 参数指定一个与by 列表匹配的list of bool
  • 使用列表ascending = [True, False]

标签: python pandas sorting


【解决方案1】:

试试:

print(df_cars.sort_values(by=['Year','Price'], inplace = False, ascending = (0,1))

【讨论】:

    【解决方案2】:

    我会努力的。 我自己做了:

    print(df_cars.sort_values(by=['Year','Price'],
                              inplace = False, 
                              ascending = (False,True))
    

    我想这和你的建议一样。 我尝试了两个版本并得到了相同的输出。

    谢谢。

    【讨论】:

      猜你喜欢
      • 2010-11-20
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      相关资源
      最近更新 更多