首页 > 解决方案 > 将从数据框列获取的参数传递给熊猫方法

问题描述

假设我有一个包含两列的数据框,一个简单的日期,它是相应的时区。我想使用第二列将天真日期转换为时区感知日期。

天真日期 时区
24-01-2021 05:00:00 “欧洲/伦敦”
24-01-2021 06:00:00 “欧洲/阿姆斯特丹”
24-01-2021 00:00:00 '美国/东部'

如果我只想转换为已知时区,我会这样做:

df['naive_date'].dt.tz_localize(tz='Europe/London')

但是,如果传递给 tz 的值应该取自该特定行的时区列怎么办?那可能吗?我试过了,不出所料没有用:

df['naive_date'].dt.tz_localize(tz=df['timezone'])

对于上下文,我会将日期与另一个时区感知日期列进行比较,当比较天真与时区感知日期时间时,比较返回 false。

标签: pythonpandas

解决方案


巴勃罗的回答很到位,这就是我最终使用的:

df['local_date'] = df.apply(lambda x: x['naive_date'].tz_localize(tz=x['timezone']), axis=1)


推荐阅读