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

如何按自定义顺序对Pandas DataFrame指定列进行排序

Pandas 实现CSV自定义排序解决方案

你可以通过以下两种方法实现col3列按照new→fix→error的自定义顺序排序:

方法1:使用有序分类类型(推荐)

该方法是pandas官方推荐的自定义排序方案,逻辑清晰,性能稳定:

import pandas as pd

# 读取原始CSV
csv_dataframe = pd.read_csv(user_submitted_csv_file)

# 定义自定义排序顺序
sort_order = ['new', 'fix', 'error']
# 将col3转换为带顺序的分类类型
csv_dataframe['col3'] = pd.Categorical(csv_dataframe['col3'], categories=sort_order, ordered=True)
# 按col3排序即可得到目标结果
csv_dataframe = csv_dataframe.sort_values(by='col3')

# 如需导出排序后的文件,执行以下代码即可
# csv_dataframe.to_csv('sorted_output.csv', index=False)

原理:pandas的有序分类类型会按照你指定的categories列表顺序做排序判断,不会使用默认的字母排序规则,完全匹配你的需求。

方法2:使用排序key映射(不修改原数据类型)

如果你不想修改col3原有的字符串数据类型,可以在排序时通过key参数做优先级映射:

import pandas as pd

csv_dataframe = pd.read_csv(user_submitted_csv_file)
# 给每个取值定义排序优先级,数字越小排序越靠前
order_map = {'new': 0, 'fix': 1, 'error': 2}
csv_dataframe = csv_dataframe.sort_values(by='col3', key=lambda col: col.map(order_map))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 07:42:03