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

Pandas如何批量将datetime64[ns]列转换为datetime64[ns, UTC]类型

报错原因

你遇到的报错:

ValueError: to assemble mappings requires at least that [year, month, day] be specified: [day,month,year] is missing

是因为 pd.to_datetime 传入多列DataFrame时,默认会将不同列识别为「年、月、日、时、分、秒」等时间组件进行拼接,而不是逐列单独转换每一列的时间值,和你的预期行为不符。

解决方案

你已经提前筛选出了所有datetime64[ns]类型的列,有两种可行的批量转换方案:

  • 方案1:使用apply逐列调用pd.to_datetime,通用性更强,就算后续列类型换成可解析的时间字符串也可以直接复用
query_df[dt_columns] = query_df[dt_columns].apply(lambda col: pd.to_datetime(col, utc=True))
  • 方案2:使用tz_localize直接为无时区的原生时间列添加UTC时区,不需要重复解析时间,性能更高
query_df[dt_columns] = query_df[dt_columns].apply(lambda col: col.dt.tz_localize("UTC"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 01:06:04