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

pandas用parse_dates转换PLANTED_DATE列为datetime失败如何解决

问题根因

pandas的parse_dates参数在遇到列中存在无法解析为日期的异常内容(包括空值、非法格式字符串、占位符等)时,会静默失败,直接将整列保留为object类型,不会抛出报错。你预览时看到部分内容格式正常,仅代表多数值符合日期规则,少量异常值就会导致整列转换失效。

解决步骤

  • 第一步:强制转换并定位异常值
    使用pd.to_datetime搭配errors='coerce'参数,将无法解析的内容转为空日期类型NaT,同时统计异常值数量、查看异常内容:
    # 强制转换,无法解析的内容转为NaT
    t_data['PLANTED_DATE'] = pd.to_datetime(t_data['PLANTED_DATE'], errors='coerce')
    # 统计转换失败的行数
    print("转换失败的异常值数量:", t_data['PLANTED_DATE'].isna().sum())
    # 查看所有异常值的具体内容
    print("异常值示例:", t_data[t_data['PLANTED_DATE'].isna()]['PLANTED_DATE'].unique())
    
  • 第二步:根据异常值调整转换规则
    • 如果异常值是日期格式和pandas默认解析规则不匹配,可指定format参数提升解析成功率,比如日期为日/月/年格式时:
      t_data['PLANTED_DATE'] = pd.to_datetime(t_data['PLANTED_DATE'], format="%d/%m/%Y", errors='coerce')
      
    • 如果异常值为无效内容无需保留,直接保留转换后的含NaT的列即可;如果需要保留,可先清洗异常值后再重新转换。
  • 第三步:验证转换结果
    执行info()确认列类型已转为datetime:
    t_data.info()
    

如果你希望在读取文件阶段就完成转换,可在read_csv中搭配date_parser参数传入自定义解析函数,处理异常格式内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:18:03