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

如何用Pandas、Numpy清洗单行长脏CSV数据集并拆分列

处理单行逗号分隔数据为结构化CSV(Pandas实现)

核心思路

将单行逗号分隔的字符串拆分为对应字段,结合预设列名生成结构化DataFrame,最终导出为标准CSV文件。

具体步骤及代码

  1. 读取原始单行数据
    从TXT文件读取唯一一行内容,去除首尾空白字符:
import pandas as pd
import csv
from io import StringIO

# 读取原始TXT文件的单行数据
with open('raw_airlines.txt', 'r', encoding='utf-8') as f:
    raw_line = f.read().strip()
  1. 安全拆分字段
    使用csv模块处理带引号的分隔符(避免像"Air China, Ltd"这类含逗号的字段被错误拆分):
# 模拟CSV读取器拆分单行数据
reader = csv.reader(StringIO(raw_line))
data_fields = next(reader)
  1. 生成结构化DataFrame并导出CSV
    结合预设列名构造DataFrame,检查字段数量匹配后导出:
# 预设列名
cols = ['AIRLINE_ID','AIRLINE_NAME','ALIAS','IATA','ICAO','CALLSIGN','COUNTRY','ACTIVE']

# 校验字段数量与列名数量一致
if len(data_fields) == len(cols):
    # 构造DataFrame
    df = pd.DataFrame([data_fields], columns=cols)
    # 导出为CSV(不保留索引)
    df.to_csv('cleaned_airlines.csv', index=False, encoding='utf-8')
else:
    print("错误:数据字段数量与列名数量不匹配,请检查原始数据")

可选优化

  • 字段类型转换:将ID等数值型字段转为数字格式
    df['AIRLINE_ID'] = pd.to_numeric(df['AIRLINE_ID'], errors='coerce')
    
  • 缺失值处理:对空字段填充默认值
    df = df.fillna('N/A')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:20:27