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

Python使用pandas将本地时间戳转UTC时报TypeError如何解决?

错误原因

dt.tz_localize()方法仅支持传入单个固定时区字符串,你直接传入df4['timezone_x']这个Series对象,不符合方法的入参要求,因此触发类型错误。

解决方案

方案1:逐行处理(适合小数据量)

通过apply逐行读取对应行的时区参数完成转换,代码如下:

df4['utc_column'] = df4.apply(
    lambda row: row['local'].tz_localize(row['timezone_x']).tz_convert('UTC'),
    axis=1
)

注意:如果你的local列本身已经是带时区的datetime类型,需要先去除原有时区再处理,把row['local']替换为row['local'].tz_localize(None)即可。

方案2:分组批量处理(适合大数据量,性能更高)

按时zone字段分组,每组内时区统一可以批量调用dt类方法,避免逐行遍历的性能损耗:

def tz_convert_group(group):
    current_tz = group['timezone_x'].iloc[0]
    group['utc_column'] = group['local'].dt.tz_localize(current_tz).dt.tz_convert('UTC')
    return group

df4 = df4.groupby('timezone_x', group_keys=False).apply(tz_convert_group)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 15:27:03