如何将45211行1列的CSV文件转换为含指定字段的17列CSV文件
单分号分隔列CSV拆分多列方案
你当前的CSV文件所有字段用分号分隔但被识别为单列,需要拆分后生成17列带指定表头的结构化CSV,以下是不同场景的实现方式:
Python实现(兼容性最高)
如果已经安装Python环境,用pandas可快速完成处理:
- 先安装依赖:
pip install pandas - 运行以下代码:
import pandas as pd # 读取原始CSV,默认仅有1列 df = pd.read_csv("你的原始文件路径.csv", header=None, names=["raw"]) # 按分号拆分每一行内容,生成17列 split_df = df["raw"].str.split(";", expand=True) # 设置指定列名 split_df.columns = ["age", "job", "marital", "education", "default", "balance", "housing", "loan", "contact", "day", "month", "duration", "campaign", "pdays", "previous", "poutcome", "y"] # 导出为新CSV,不保留索引 split_df.to_csv("处理后文件.csv", index=False, encoding="utf-8")
如果原始文件第一行是旧表头,把read_csv里的header=None改成header=0即可。
Excel/WPS可视化操作(无代码需求)
- 用Excel/WPS打开原始CSV文件,选中第一列所有内容
- 点击顶部菜单栏「数据」选项卡,选择「分列」功能
- 分隔符号选择「分号」,确认后执行分列
- 在第一行上方插入空行,依次填入17个列名:age、job、marital、education、default、balance、housing、loan、contact、day、month、duration、campaign、pdays、previous、poutcome、y
- 最后另存为新的CSV文件即可
Linux/macOS命令行快速处理
直接用awk命令一行完成转换:awk 'BEGIN{FS=";"; OFS=","; print "age","job","marital","education","default","balance","housing","loan","contact","day","month","duration","campaign","pdays","previous","poutcome","y"} {print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17}' 原始文件.csv > 处理后文件.csv
该命令会自动按分号拆分字段,先输出指定表头,再逐行转换为逗号分隔的17列CSV。
内容的提问来源于stack exchange,提问作者Pasindu Perera
相关产品推荐
相关产品推荐

