我有一个polars Dataframe,有两列:一个包含日期时间的字符串列和一个包含UTC偏移量的整数列(例如,EDT为—4).基本上,Dataframe看起来像这样:
>>> data
shape: (2, 2)
┌─────────────────────┬──────────┐
│ Datetime ┆ Timezone │
│ --- ┆ --- │
│ str ┆ i64 │
╞═════════════════════╪══════════╡
│ 2022-01-01 12:52:23 ┆ -4 │
│ 2023-03-31 04:22:59 ┆ -5 │
└─────────────────────┴──────────┘
现在,我想将此列转换为UTC或时区感知的datetime列.pl.Expr.str.to_datetime
函数接受time_zone
参数.不幸的是,这个参数只能作为字符串传递,而不能作为pl.Expr
传递.
换句话说,我可以将所有列转换为相同的指定时区,但我不能根据另一列的值动态使用时区.
最后我想要的是如下内容(注意,Datetime列现在是datetime
类型,时区偏移量已经动态添加(第一行为4小时,第二行为5小时).
>>> data
shape: (2, 2)
┌─────────────────────┬──────────┐
│ Datetime ┆ Timezone │
│ --- ┆ --- │
│ datetime ┆ i64 │
╞═════════════════════╪══════════╡
│ 2022-01-01 16:52:23 ┆ -4 │
│ 2023-03-31 09:22:59 ┆ -5 │
└─────────────────────┴──────────┘
有没有一种方法可以做到这一点,而不需要基于map_elements
或iter_rows
的方法?