如何使用Pandas按多列自定义排序顺序对DataFrame排序
Pandas多列自定义排序实现方法
要实现按'A'升序、'B'降序、'C'升序的多列排序,仅给sort_values()传入列名列表是不够的,必须搭配ascending参数指定每一列的排序方向,具体操作如下:
核心代码
# 生成排序后的新DataFrame(不修改原数据) sorted_data = data.sort_values(by=['A', 'B', 'C'], ascending=[True, False, True])
参数说明
by=['A', 'B', 'C']:定义排序的优先级,先按'A'列排序,再按'B'列,最后按'C'列ascending=[True, False, True]:对应每一列的排序规则,True代表升序,False代表降序,完美匹配需求
直接修改原DataFrame
如果不需要保留原数据,可添加inplace=True参数直接修改:
data.sort_values(by=['A', 'B', 'C'], ascending=[True, False, True], inplace=True)
内容的提问来源于stack exchange,提问作者Peter Korolev
相关产品推荐
相关产品推荐

