You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas转换字符串日期为datetime类型报错及结果异常问题求解

Pandas字符串日期转换异常解决方案

问题1、2(day返回值异常)解决

核心原因是你指定的format占位符顺序和实际日期字符串的字段顺序不匹配:

  • 先打印原始数据样本确认实际格式
# 输出前5条原始time列内容,确认年、月、日的排列顺序
print(new_data['time'].head().tolist())
  • 按实际顺序编写format参数:
    比如你输出的样本是['2024-06-08 09:00:00', '2024-06-09 10:00:00'],顺序为年-月-日,对应format为%Y-%m-%d %H:%M:%S,解析后直接用.dt.day获取日即可,无需用apply遍历:
new_data['parsed_time'] = pd.to_datetime(new_data['time'], format='%Y-%m-%d %H:%M:%S')
new_data['day'] = new_data['parsed_time'].dt.day

问题3(拼接后转换报错ValueError)解决

你拼接后的字符串格式为31/08/21;00:00:00,和你指定的%Y/%m/%d;%H:%M:%S存在两处不匹配:

  1. 字段顺序错误:你拼接的是日/月/年,不是年/月/日
  2. 年占位符错误:拼接的年是两位数字21,要用%y匹配,%Y仅匹配四位年份
    修改format参数即可:
new_data['parsed_datetime'] = pd.to_datetime(new_data['time'], format='%d/%m/%y;%H:%M:%S')

校验步骤

解析完成后可通过以下代码对比原始值和解析值,确认转换正确:

print(pd.concat([
    new_data['time'].head(),
    new_data['parsed_datetime'].dt.strftime('%Y-%m-%d %H:%M:%S').rename('parsed_result').head()
], axis=1))

内容的提问来源于stack exchange,提问作者realbro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 10:45:08