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

如何在Pandas中将格式为‘2020-06-30 15:20:13.078196+00:00’的日期列转换为datetime类型?

解决Pandas日期格式转换错误的问题

看起来你遇到的核心问题是格式字符串和实际日期格式不匹配,咱们一步步来修正:

问题根源

你的日期字符串是2020-06-30 15:20:13.078196+00:00,但你之前用的格式里错误地用了T分隔日期和时间(比如%Y-%m-%dT%H:%M:%S),而实际数据里是空格分隔日期和时间;另外时区部分的格式符也不对,实际微秒后直接跟+00:00,不需要额外的点或冒号。

推荐解法(更高效的方式)

直接用Pandas内置的pd.to_datetime,比apply+strptime性能好很多,而且大部分时候能自动识别格式:

# 方法1:自动识别格式(推荐,Pandas会自动解析这种标准格式)
df['date'] = pd.to_datetime(df['date_string'])

# 方法2:指定精确格式(如果自动识别出错时用)
df['date'] = pd.to_datetime(df['date_string'], format='%Y-%m-%d %H:%M:%S.%f%z')

如果一定要用datetime.strptime

修正格式字符串即可,注意日期和时间之间是空格,时区部分用%z直接匹配+00:00:

from datetime import datetime
df['date'] = df['date_string'].apply(lambda s: datetime.strptime(s, '%Y-%m-%d %H:%M:%S.%f%z'))

排查格式不匹配的异常数据

如果还是有部分数据转换失败,可以加上errors='coerce'把不匹配的转为NaT(Pandas的缺失日期值),然后查看这些异常行:

df['date'] = pd.to_datetime(df['date_string'], format='%Y-%m-%d %H:%M:%S.%f%z', errors='coerce')
# 输出转换失败的行,方便排查格式问题
print(df[df['date'].isna()])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 16:59:07