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

使用pandas.read_csv读取含冒号时间列的CSV报错求助

解决pandas读取含冒号时间列的分号分隔CSV报错问题

问题重现

CSV以分号;为分隔符,行结构示例:

01/09/22;00:00;1829664;884435280;30256;7618031;827711;9559232

执行代码:

df = pd.read_csv('\MyCSV.csv', sep=';')

报错:Error tokenizing data. C error: Expected 4 fields in line 3, saw 18
删除含冒号:的时间列后可正常读取,确认问题源于该列。

可行解决办法

  • 改用Python解析引擎
    pandas默认的C引擎对部分特殊字符场景处理不够灵活,切换到Python引擎可规避这类tokenizing错误:

    df = pd.read_csv('\MyCSV.csv', sep=';', engine='python')
    
  • 明确指定列数/列名
    提前定义匹配字段数量的列名,让pandas跳过自动推断字段数的步骤:

    # 自定义8个列名,对应示例行的字段数量
    col_names = ['date', 'time', 'col3', 'col4', 'col5', 'col6', 'col7', 'col8']
    df = pd.read_csv('\MyCSV.csv', sep=';', names=col_names, header=None)
    

    若CSV自带表头,移除header=None参数即可。

  • 跳过/处理异常行
    若报错行的时间列存在格式错误(如意外混入分号),可设置跳过错误行(仅允许丢失部分数据时使用):

    df = pd.read_csv('\MyCSV.csv', sep=';', on_bad_lines='skip')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:25:20