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

pd.read_csv设置sep为";",棘手数据集处理求助

可行解决方案
  • 方案一:匹配Excel文本分列逻辑
    直接指定分隔符为;,同时配置引号处理参数,让pandas正确识别被双引号包裹的字段:
import pandas as pd
import csv

df = pd.read_csv('你的文件路径.csv', sep=';', quotechar='"', quoting=csv.QUOTE_ALL, engine='python')

这个配置会把所有被"包裹的内容视为单个字段,忽略字段内部的;,和Excel文本分列的逻辑完全一致,应该能直接得到19列的结果。

  • 方案二:手动预处理文本格式
    如果文件格式存在特殊异常(比如首尾多余引号、分隔符与引号组合混乱),可以先读取原始内容做清洗,再导入pandas:
import pandas as pd
from io import StringIO

# 读取原始文件内容
with open('你的文件路径.csv', 'r', encoding='utf-8') as f:
    raw_content = f.read()

# 替换分隔符并清理引号:把";"换成无冲突的分隔符(比如|),再去掉首尾引号
cleaned_content = raw_content.replace('";"', '|').strip('"')

# 用处理后的内容生成DataFrame
df = pd.read_csv(StringIO(cleaned_content), sep='|')
  • 方案三:用原生csv模块读取后转DataFrame
    Python标准库的csv模块对带引号的分隔字段处理更稳定,先读取再转成DataFrame:
import pandas as pd
import csv

row_list = []
with open('你的文件路径.csv', 'r', encoding='utf-8') as f:
    # 配置分隔符和引号规则
    csv_reader = csv.reader(f, delimiter=';', quotechar='"')
    for row in csv_reader:
        row_list.append(row)

# 转成DataFrame,第一行作为列名
df = pd.DataFrame(row_list[1:], columns=row_list[0])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:10:41