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

pandas转换含时间区间的date_time列出现ParserError如何解决

问题解决方案

报错原因

你的date_time列存储的是带UTC标记的时间段字符串,包含开始、结束两个时间点,不属于pandas默认支持的单个时间点格式,因此直接调用pd.to_datetime会抛出解析错误。

解决方案

根据你的使用需求,可以选择以下两种处理方式:

方案1:拆分出开始、结束两个时间列(推荐,完整保留原始时间段信息)

# 移除末尾的(UTC)标记,按分隔符拆分出两个时间字符串
df[['start_time', 'end_time']] = df['date_time'].str.replace(r'\s*\(UTC\)$', '', regex=True)\
                                                 .str.split(' - ', expand=True)

# 指定格式转换为datetime类型,utc=True表示保留时区属性
dt_format = '%d.%m.%Y %H:%M'
df['start_time'] = pd.to_datetime(df['start_time'], format=dt_format, utc=True)
df['end_time'] = pd.to_datetime(df['end_time'], format=dt_format, utc=True)

# 可选:删除原始的date_time列
df = df.drop(columns=['date_time'])

注意:如果你的日期格式是月.日.年而非日.月.年,请把dt_format修改为'%m.%d.%Y %H:%M'

方案2:仅保留单个时间点

如果你只需要用到时间段的开始时间,可以直接提取后转换:

dt_format = '%d.%m.%Y %H:%M'
df['date_time'] = pd.to_datetime(df['date_time'].str.split(' - ').str[0], format=dt_format, utc=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:45:07