求助:将整数格式日期转为标准日期时出现格式匹配错误
解决整数日期转标准日期格式的报错问题
错误原因
你指定的格式字符串'%m/%d/%Y'要求日期文本必须带斜杠分隔符(比如'10/28/2009'),但你的日期是无斜杠的字符串'102809',格式不匹配所以触发报错。
解决方案
直接针对无斜杠的MMDDYY格式设置解析规则即可,推荐用向量化操作(比apply效率高很多):
import pandas as pd # 将整数列转为字符串后,用%m%d%y格式解析 curry['Datetime'] = pd.to_datetime(curry['Date'].astype(str), format='%m%d%y')
补充说明
%m%d%y对应月-日-两位年份的无斜杠格式,pandas会自动把两位年份09解析为2009(规则:00-69对应2000-2069,70-99对应1970-1999)- 如果数据集里有19xx年的日期(比如
102899对应1999年10月28日),这个规则也能正确识别 - 尽量不用
apply循环处理,向量化操作在大数据集上的速度会快几十倍
测试示例
curry = pd.DataFrame({'Date': [102809, 123109, 010110]}) curry['Datetime'] = pd.to_datetime(curry['Date'].astype(str), format='%m%d%y') print(curry)
输出结果:
Date Datetime 0 102809 2009-10-28 1 123109 2009-12-31 2 10110 2010-01-01
内容的提问来源于stack exchange,提问作者i'mgnome
相关产品推荐
相关产品推荐

