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

如何用Python筛选多列并重写CSV文件?

使用Pandas提取CSV指定列并自定义表头

原始CSV文件结构

code1     code2     code3      name1     name2    sometnig1   something2

14355     12345     54133      part1     part12   aaaaaaaa    bbbbbbb
54782     57815     52781      part2     part22   ccccccc     ffffffff
14515     52495     52852      part3     part33   ddddddd     sssssss

目标CSV文件要求

需要提取指定列并替换为自定义表头,输出如下:

code_1    code_2    name_1    name_2   something_2

14355     12345     part1     part12   bbbbbbb
54782     57815     part2     part22   ffffffff
14515     52495     part3     part33   sssssss

解决方案

选多列的逻辑和单列类似,只是把要保留的列名放进列表即可,另外注意你的原始文件是多空格分隔,读取时要指定分隔符。完整代码如下:

import pandas as pd

# 读取原始CSV,用\s+匹配任意数量的空格作为分隔符
df = pd.read_csv("原始文件路径.csv", sep='\s+')

# 选择需要的多列:传入原始列名组成的列表
selected_df = df[['code1', 'code2', 'name1', 'name2', 'something2']]

# 替换为自定义表头,顺序要和选中的列对应
selected_df.columns = ['code_1', 'code_2', 'name_1', 'name_2', 'something_2']

# 保存为新CSV,用制表符分隔保证对齐,不保留索引列
selected_df.to_csv("新文件路径.csv", sep='\t', index=False)

关键细节说明

  • sep='\s+':必须指定这个参数,否则Pandas会把整行当成一列(默认按逗号分隔)。
  • 列选择:列表里的原始列名要和你想保留的字段一一对应,顺序决定了输出列的顺序。
  • 表头重命名:直接给columns属性赋值新列表,确保新表头和选中列的顺序完全匹配。
  • 保存格式:如果想要和示例一样的空格对齐效果,用sep=' '(四个空格)替代sep='\t'也可以。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:31:15