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

Python中如何将多格式pandas日期列转换为yyyy-m-dd标准格式

混合格式日期列统一转换解决方案

报错原因

你遇到的unknown string format报错核心原因是:Date列存在/、-两类日期分隔符,还混合了带时间后缀的格式,默认模式下pd.to_datetime无法自动推断所有字符串的日期格式。你手动拆分冒号的操作没有必要,pd.to_datetime本身原生支持解析带时间后缀的日期字符串。

正确实现代码

步骤1:统一解析为datetime类型

# 开启自动格式推断,适配混合输入格式,异常值转为NaT方便后续排查
df['Date'] = pd.to_datetime(df['Date'], infer_datetime_format=True, errors='coerce')

步骤2:转换为指定的yyyy-m-dd字符串格式

# %-m、%-d表示不保留月、日的前导零,如需保留前导零可改为%Y-%m-%d
df['Date'] = df['Date'].dt.strftime('%Y-%-m-%-d')

可选适配参数

  • 如果你的日期规则是日在前、月在后(例如8-5-2021代表5月8日),可在解析时额外添加dayfirst=True参数:
    df['Date'] = pd.to_datetime(df['Date'], infer_datetime_format=True, dayfirst=True, errors='coerce')
    
  • 如果你需要输出带前导零的yyyy-mm-dd格式,将strftime的格式参数替换为%Y-%m-%d即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:21:00