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

pandas解析Timestamp列报ParserError: Unknown string format错误如何解决

问题原因

报错ParserError: Unknown string format: Timestamp的核心原因是Timestamp列中存在值为Timestamp的非时间格式字符串,pandas无法将该文本识别为合法时间,触发解析失败。
常见诱因:

  • 存储CSV时使用追加模式写入,未设置header=False,导致文件中重复插入了多组表头行,这些表头行的Timestamp列值就是字符串Timestamp,被读取为普通数据
  • 调用pd.read_csv时skiprows等行过滤参数配置错误,将真实表头行识别为数据行加载
  • 原始CSV存在脏数据,时间列混入了无关文本
修复方案
  1. 先定位异常行,确认无效数据分布:
    # 筛选Timestamp列值为"Timestamp"的异常行
    print(df[df["Timestamp"] == "Timestamp"])
    
  2. 过滤清理无效行:
    # 剔除混入的表头/脏数据行,重置索引
    df = df[df["Timestamp"] != "Timestamp"].reset_index(drop=True)
    
  3. 执行时间类型转换,显式指定匹配的时间格式,同时配置异常值处理逻辑避免报错:
    # %Y-%m-%d %H:%M:%S.%f 可精准匹配带3位毫秒的时间字符串格式
    df["Timestamp"] = pd.to_datetime(
        df["Timestamp"],
        format="%Y-%m-%d %H:%M:%S.%f",
        errors="coerce" # 其余无法解析的异常值统一转为NaT空时间类型,不中断运行
    )
    
  4. 后续加载同类CSV时,可直接在读取阶段配置时间解析与异常跳过逻辑,减少后续处理成本:
    df = pd.read_csv(
        "data.csv",
        parse_dates=["Timestamp"],
        on_bad_lines="skip"
    )
    

若问题由追加写入CSV重复生成表头导致,后续追加写入数据时需在df.to_csv()中传入header=False、mode='a'参数,避免重复写入表头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:22:01