You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对pandas DataFrame不同列分别设置升序、降序排序规则

解决方案

直接调用pandas内置的sort_values()方法,为不同排序列分别指定对应排序方向即可实现需求:

import pandas as pd

# 构造示例DataFrame
data = pd.DataFrame({"a":[1,3,5,4,2], "b":[1,1,2,1,1]})

# 按规则排序:b列降序,b值相等时a列升序
sorted_df = data.sort_values(by=['b', 'a'], ascending=[False, True])

# 如果需要排序后重置为连续的行索引,可添加ignore_index=True参数:
# sorted_df = data.sort_values(by=['b', 'a'], ascending=[False, True], ignore_index=True)

print(sorted_df)

运行后输出结果和预期完全一致:

a  b
2  5  2
0  1  1
4  2  1
1  3  1
3  4  1

参数说明

  • by:传入排序优先级的列名列表,此处先按b列排序,b列值相同时再按a列排序
  • ascending:传入和by列表一一对应的布尔值,False代表降序,True代表升序,刚好匹配b列降序、a列升序的要求
  • 可选参数ignore_index=True:开启后会重置排序后的DataFrame行索引为从0开始的连续整数,避免保留原表的行索引

内容的提问来源于stack exchange,提问作者Ryan Slattery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:36:04