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

如何基于c、d列之和对pandas DataFrame进行升序排序

按c、d列和升序排序实现方案

直接用sort_values的key参数传入两列求和的排序规则即可,不需要给DataFrame新增永久列,最终返回的结果会完整保留原有的a、b、c、d四个列,仅调整行顺序。

完整可运行代码如下:

import numpy as np
import pandas as pd

# 原测试数据生成逻辑
d = []
for i in range(5): 
    d.append({
        'a': np.random.rand(), 
        'b': np.random.rand(), 
        'c': np.random.rand(), 
        'd': np.random.rand(), 
    })
d = pd.DataFrame(d)

# 按c列、d列的数值和升序排序
sorted_df = d.sort_values(by='c', key=lambda _: d['c'] + d['d'], ascending=True)

补充说明

  • ascending=True指定排序方式为升序,需要降序时改为False即可
  • 上述写法在pandas 1.1.0及以上版本均可正常使用
  • 如果你使用的是更早的pandas版本,可以用索引重排的兼容写法,效果完全一致:
# 旧版pandas兼容方案
sorted_df = d.iloc[(d['c'] + d['d']).argsort()]

示例数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:27:23