pandas字符串日期列转datetime64及格式匹配错误解决咨询
解决方案
错误原因分析
- 第一次执行报错:你使用的格式符
%Y对应4位完整年份,但你的日期字符串中年份为2位缩写(如21对应2021),格式不匹配因此抛出ValueError。 - 第二次转换出现日月错位:直接调用
astype("datetime64")时,pandas默认优先按美式月/日/年的规则推断格式,当日份数值≤12时,会错误识别为月份,导致日月错位。
正确转换代码
明确指定格式为日/月/2位年即可,不会出现自动推断错误的问题:
df["Date"] = pd.to_datetime(df["Date"], format = "%d/%m/%y")
如果你的数据中存在少量不符合格式的脏数据,可以添加errors='coerce'参数,将非法日期转换为空值NaT,避免整体转换失败:
df["Date"] = pd.to_datetime(df["Date"], format = "%d/%m/%y", errors="coerce")
内容的提问来源于stack exchange,提问作者Coding Wheel
相关产品推荐
相关产品推荐

