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

如何在Pandas中独立排序DataFrame多列(不保留数据关联性)

解决方案

不需要借助sort_values的key参数实现,因为sort_values本质是基于行的排序(会保留行内列的关联)。要实现各列独立排序,直接对每一列单独排序后重新构造DataFrame即可:

实现代码

import pandas as pd

records = [
    {"a": 10, "b": 22},
    {"a": 11, "b": 21},
    {"a": 60, "b": 200},
    {"a": 70, "b": 40},
    {"a": 10, "b": 30},
]

df = pd.DataFrame.from_records(records)

# 按需求独立排序各列:a列升序,b列降序
df_sorted = pd.DataFrame({
    "a": df["a"].sort_values(ascending=True).values,
    "b": df["b"].sort_values(ascending=False).values
})

print(df_sorted)

运行结果

a    b
0  10  200
1  10   40
2  11   30
3  60   22
4  70   21

说明

  • 这种方式完全断开了原行的列关联,每一列都是独立排序后的结果。
  • 无需自定义复杂排序算法,直接利用pandas内置的sort_values处理单列即可满足需求。
  • 若强行使用sort_values的key参数,无法打破行数据的关联性,因为该参数仅用于生成每列的排序键,最终排序仍基于行的整体逻辑,不适合实现列独立排序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 05:30:48