python - 将从数据框列获取的参数传递给熊猫方法
问题描述
假设我有一个包含两列的数据框,一个简单的日期,它是相应的时区。我想使用第二列将天真日期转换为时区感知日期。
天真日期 | 时区 |
---|---|
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。
解决方案
巴勃罗的回答很到位,这就是我最终使用的:
df['local_date'] = df.apply(lambda x: x['naive_date'].tz_localize(tz=x['timezone']), axis=1)
推荐阅读
- c# - when should i use parallel foreach and when should i use parallel linq?
- ios - API.swift 文件未更新:Apollo GraphQL iOS
- google-apps-script - 向复制的列添加时间戳
- docker - 从 Docker 内部的 Github 运行 go 文件
- django - django 2,列表传递给具有不同嵌套对象的模板,如何访问每个对象?
- c - 对象属性与指针之间的转换作为函数参数
- mysql - 我安装了mysql并为root设置了密码但无法登录,为什么?
- ruby-on-rails - 嵌套字段的值未正确保存 | 导轨 5.2
- javascript - Stubbing a nested function in Jest
- ios - 具有多个字典对应一键Swift的字典