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

如何在DataFrame按A、C列排序时,对C列重复项的B列排序

DataFrame多列排序优化方案

原始DataFrame:

'A'     'B'     'C'     'D'    
1    4      1      'af23'      'z'
2    4      3      'bf14'      'y'
3    4      2      'bf14'      'x'
4    6      4      'cf51'      'w'
5    6      5      'ch63'      'v'
6    5      6      'cm79'      'u'

执行以下排序代码:

df=df.sort_values(by=['A', 'C']).reset_index(drop=True)

得到结果:

'A'     'B'     'C'     'D'    
1    4      1      'af23'      'z'
2    4      3      'bf14'      'y'
3    4      2      'bf14'      'x'
4    5      6      'cm79'      'u'
5    6      4      'cf51'      'w'
6    6      5      'ch63'      'v'

可见当C列值重复时,B列未同步排序。需求是按A、C列排序的同时,在C列值相等的场景下,对B列也进行升序排序,目标结果如下:

'A'     'B'     'C'     'D'    
1    4      1      'af23'      'z'
2    4      2      'bf14'      'x'
3    4      3      'bf14'      'y'
4    5      6      'cm79'      'u'
5    6      4      'cf51'      'w'
6    6      5      'ch63'      'v'

解决方法

只需在sort_values的by参数中加入B列,明确排序优先级为A→C→B:

df = df.sort_values(by=['A', 'C', 'B']).reset_index(drop=True)

这样就能在A列值相同时先按C列排序,当C列值也相同时,自动按B列升序排列,得到目标结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:15:54