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

如何对Pandas DataFrame的class_id列按数字升序排序?

问题

我有一个结构如下的Pandas DataFrame:

class_iddims
94369_GA_3012295
27369_GA_3012214
78369_CA_3012227
30472_MN_5512116

该DataFrame包含更多行数据。我需要将class_id列按前缀数字升序排序,预期效果如下:

class_iddims
27369_GA_3012214
30472_MN_5512116
78369_CA_3012227
94369_GA_3012295

请问如何实现这一排序需求?

解决方案

你可以通过提取class_id中的前缀数字作为排序依据,以下是两种实用实现方式:

方法1:生成临时排序键后排序

先拆分出class_id的前缀数字并转为整数,以此为键排序后再删除临时列:

import pandas as pd

# 假设你的DataFrame名为df
df['sort_key'] = df['class_id'].str.split('_').str[0].astype(int)
df_sorted = df.sort_values('sort_key').drop('sort_key', axis=1)

方法2:直接指定排序逻辑(更简洁)

无需新增临时列,直接在sort_values中定义排序键的生成规则:

df_sorted = df.sort_values(by='class_id', key=lambda x: x.str.split('_').str[0].astype(int))

两种方法都能得到预期的排序结果,方法2更精简,不会产生额外的临时列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:36:24