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

Pandas DataFrame按指定列ASCII字符码多列排序实现问题

实现代码及说明
  • 你提到的列序号为从1开始计数,对应你读取DataFrame的列名映射规则为:第6列→列名'5'、第3列→列名'2'、第4列→列名'3'。Pandas默认的字符串排序规则完全符合要求的ASCII码排序逻辑(数字字符<大写字母<小写字母),只需注意读取数据时指定列类型为字符串,避免数值转换导致排序异常。

完整实现代码如下:

import pandas as pd
# 读取时指定所有列为字符串类型,保证排序基于字符ASCII码
df1 = pd.read_csv('input.txt', sep='|', names=['0', '1', '2', '3', '4', '5', '6', '7', '8'], dtype=str)
# 按优先级排序:先第6列,再第3列,最后第4列
df_sorted = df1.sort_values(by=['5', '2', '3'], ignore_index=True)
# 如需导出为和原格式一致的文本文件,可执行下面的代码
df_sorted.to_csv('sorted_output.txt', sep='|', index=False, header=False)
  • 执行后得到的df_sorted和你给出的预期输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 17:36:00