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

CSV文件正确清洗方法:提取日期与比率字段并处理冗余引号问题

CSV指定字段提取清洗方案

原代码问题

你现有代码使用nrows=0参数仅读取了CSV的表头行,未加载任何实际数据,因此无法得到有效处理结果。

方案1:Pandas实现(适配大多数场景,代码简洁)

通过指定读取参数直接过滤不需要的列,降低大文件内存占用,核心代码如下:

import pandas as pd

# 读取文件,仅加载需要的第1列(索引0)和第6列(索引5)
df = pd.read_csv(
    "Dataset.csv",
    sep=";",  # 指定分隔符为分号
    quotechar='"',  # 自动处理包裹字段的双引号
    usecols=[0, 5],  # 仅读取需要的两列,大幅降低内存消耗
    header=None,  # 无表头行,如果你实际文件有表头可删除这行并调整usecols索引
    dtype=str  # 全部按字符串读取,避免自动格式转换出错
)

# 清理字段中残留的多余引号
df[0] = df[0].str.replace('"', "")
df[5] = df[5].str.replace('"', "")

# 按你需要的格式输出到新文件
df.to_csv(
    "processed_result.csv",
    header=False,
    index=True,  # 保留行号索引和你示例的输出格式匹配
    encoding="utf-8"
)

方案2:纯Python逐行读取(适配TB级超大文件,内存占用极低)

不需要加载全量文件到内存,逐行处理即可,核心代码如下:

# 输出结果文件路径
output_path = "processed_result.csv"

with open("Dataset.csv", "r", encoding="utf-8") as f_in, open(output_path, "w", encoding="utf-8") as f_out:
    # 如果你的CSV第一行是表头,取消注释下面这行跳过表头
    # next(f_in)
    for line_num, line in enumerate(f_in, start=1):
        line = line.strip()
        if not line:
            continue
        # 按分号拆分字段
        fields = line.split(";")
        # 提取日期和比率,清理多余双引号
        date = fields[0].replace('"', "").strip()
        rate = fields[5].replace('"', "").strip()
        # 按要求格式写入行
        f_out.write(f"{line_num}.{date}, {rate}\n")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:54:05