如何准确处理只含年份的日期字符串,防止引发 ValueError?
- 内容介绍
- 相关推荐
本文共计531个文字,预计阅读时间需要3分钟。
相关专题
当 pandas 的 `pd.to_datetime()` 遇到仅含年份(如 "1922")的字符串却默认按 `%y-%m-%d` 格式解析时,会抛出 valueerror;解决方法是显式指定 `format='%y'` 或使用 `infer_datetime_format=true` / `format='mixed'` 等灵活策略。
在将 'release_date' 列设为索引并转换为 datetime 类型时,报错 ValueError: time data "1922" doesn't match format "%Y-%m-%d",根本原因在于:该列中存在不统一的日期格式——部分值可能是完整日期(如 "1998-05-12"),而另一些仅包含年份(如 "1922")。Pandas 默认尝试按 ISO 或通用格式(如 %Y-%m-%d)解析,一旦遇到纯年份字符串,便因格式不匹配而失败。
✅ 正确做法是显式声明输入格式。
本文共计531个文字,预计阅读时间需要3分钟。
相关专题
当 pandas 的 `pd.to_datetime()` 遇到仅含年份(如 "1922")的字符串却默认按 `%y-%m-%d` 格式解析时,会抛出 valueerror;解决方法是显式指定 `format='%y'` 或使用 `infer_datetime_format=true` / `format='mixed'` 等灵活策略。
在将 'release_date' 列设为索引并转换为 datetime 类型时,报错 ValueError: time data "1922" doesn't match format "%Y-%m-%d",根本原因在于:该列中存在不统一的日期格式——部分值可能是完整日期(如 "1998-05-12"),而另一些仅包含年份(如 "1922")。Pandas 默认尝试按 ISO 或通用格式(如 %Y-%m-%d)解析,一旦遇到纯年份字符串,便因格式不匹配而失败。
✅ 正确做法是显式声明输入格式。

