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

如何使用Pandas按指定名称顺序对CSV文件进行排序?

如何用Pandas按自定义顺序给CSV文件排序?

没问题,这个需求用Pandas处理起来非常直观,我给你一套完整的解决方案,跟着步骤来就行:

步骤1:导入Pandas并读取CSV文件

首先得把CSV文件加载到Pandas的DataFrame里,代码如下:

import pandas as pd

# 替换成你的CSV文件路径
df = pd.read_csv('your_input.csv')

步骤2:定义你的目标排序顺序

根据你的需求,最终想要的第一列顺序是 David, Paul, John, Harry,所以先把这个顺序写成列表:

# 这里写你想要的自定义排序顺序
target_order = ['David', 'Paul', 'John', 'Harry']

步骤3:将第一列转为分类类型并指定顺序

Pandas的Categorical类型可以让我们自定义排序规则,这是解决问题的核心。我们把第一列(假设列名叫Name,如果不确定列名,可以用df.columns[0]来指代第一列)转换成分类类型,同时指定我们的目标顺序:

# 如果你知道第一列的列名,直接替换成列名即可,比如df['Name']
df[df.columns[0]] = pd.Categorical(df[df.columns[0]], categories=target_order, ordered=True)

步骤4:按第一列排序并保存结果

现在只需要按这个分类列排序,然后把结果存回CSV就搞定了:

# 按第一列排序,ascending=True就是按我们指定的顺序来
sorted_df = df.sort_values(by=df.columns[0], ascending=True)

# 保存到新的CSV文件,替换成你想要的输出路径
sorted_df.to_csv('sorted_output.csv', index=False)

额外说明

如果你的CSV第一列里有不在target_order中的值,这些行默认会被排在最后。如果想调整这种情况,可以在创建Categorical的时候加上handle_unknown='ignore'参数,或者根据需求调整这些额外值的位置(比如把ascending设为False,就能让未知值排在最前面)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:33:22