使用datetime.strptime转换字符串为datetime对象时遇格式匹配错误求助
问题原因
你用的格式符%y代表两位数的年份(比如19、20),但你的时间数据'2019-12-06 09:00:00'里是四位数的年份,两者不匹配,所以触发了格式错误。
修复方案
1. 修正循环代码的格式符
把格式字符串里的%y改成%Y(四位数年份的对应格式符),修改后的代码:
from datetime import datetime for i in range(0, len(df)): df['date'][i] = datetime.strptime(df['date'][i], '%Y-%m-%d %H:%M:%S')
2. 更高效的Pandas原生写法(推荐)
Pandas自带了专门处理日期转换的pd.to_datetime()方法,不需要手动循环遍历,效率更高、代码更简洁:
import pandas as pd df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
如果你的日期是标准格式,甚至可以省略format参数,Pandas会自动识别:
df['date'] = pd.to_datetime(df['date'])
内容的提问来源于stack exchange,提问作者Wenjie Yu
相关产品推荐
相关产品推荐

