Python DataFrame日期转换触发AssertionError错误求助
报错根本原因
你的代码存在参数传递错误,直接触发了断言校验失败:
- 没有指定
format关键字参数名:pd.to_datetime的第二个位置参数是errors,你直接把格式化规则写在第二个位置,相当于把非预期的值传给了errors参数,触发了errors只能是raise/ignore/coerce的断言校验 - 格式规则传入方式错误:
format参数要求直接传入字符串格式规则,不需要用format()的调用写法
修复后的代码
import pandas as pd # 正确指定format关键字参数,直接传入格式字符串 pd.to_datetime(sf['date'][1:4], format='%m-%d-%Y')
输出结果验证
运行后会得到正确的datetime类型序列:
1 2021-06-01 2 2021-06-11 3 2021-06-12 4 2021-08-01 Name: date, dtype: datetime64[ns]
如果后续遇到格式不匹配的日期不想中断运行,可以额外添加errors参数设置容错逻辑,比如errors='coerce'会把不匹配的日期转为空值NaT:
pd.to_datetime(sf['date'][1:4], format='%m-%d-%Y', errors='coerce')
内容的提问来源于stack exchange,提问作者Zanam
相关产品推荐
相关产品推荐

