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

Python中如何将字符串时间列转为DateTime格式?

解决字符串转DateTime的格式匹配问题

问题根源

你遇到的ValueError是因为格式字符串和实际数据不匹配:

  • 年份部分:你用了%y(匹配两位年份,比如22),但数据里是四位年份2022,应该用%Y;
  • 时间部分:数据只有时:分(比如08:01),但格式字符串写了%H:%M:%S(要求时分秒),多余的秒数格式导致匹配失败;
  • 额外问题:不需要手动循环遍历DataFrame列,pandas支持直接对整列做批量转换,效率更高。

解决方法

方法1:指定正确的格式字符串

直接匹配数据的日/月/年 时:分格式:

df['Arrive time'] = pd.to_datetime(df['Arrive time'], format='%d/%m/%Y %H:%M')

方法2:让pandas自动推断格式(更灵活)

如果数据格式偶尔有变动,去掉format参数,加上dayfirst=True确保日在前的日期被正确解析:

df['Arrive time'] = pd.to_datetime(df['Arrive time'], dayfirst=True)

补充说明

关于原CSV有秒但DataFrame不显示的问题:这大概率是pandas的显示设置导致的,实际数据可能仍然包含秒信息。如果需要保留秒,可以先检查原始数据的真实格式,再调整格式字符串(比如如果原始数据是28/11/2022 08:01:00,就用%d/%m/%Y %H:%M:%S)。


内容的提问来源于stack exchange,提问作者Felipe Abrão Mariotti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:32:26