在给定 UTC 时间的特定邮政编码处查找本地日期时间
Find local datetime at a specific zipcode given UTC time
我有一个包含美国邮政编码和 UTC 时间的 datetimeoffset 字段的数据框。我想在数据框中添加一列,以显示基于 Zip 的当地时间。看起来 pyzipcode 可能有我需要的东西,但我不知道如何编码。这是我拥有的数据框的示例:
import pandas as pd
from pyzipcode import ZipCodeDatabase
zcdb = ZipCodeDatabase()
data = [{'Zip':78745, 'DateTimeOffsetUTC':'7/8/2020 5:17:48 PM +00:00'}]
df = pd.DataFrame(data)
df["LocalDatetime"] = ???
提前致谢!我认为这可能是一件非常简单的事情,但我是 python.
的新手
假设您没有无效数据,map
每个邮政编码的 lambda 应该足以提取时区偏移量。
dt = pd.to_datetime(df['DateTimeOffsetUTC'])
offset = df['Zip'].map(lambda z: pd.Timedelta(hours=zcdb[z].timezone))
df['LocalDatetime'] = (dt + offset).dt.tz_localize(None)
df
Zip DateTimeOffsetUTC LocalDatetime
0 78745 7/8/2020 5:17:48 PM +00:00 2020-07-08 11:17:48
我有一个包含美国邮政编码和 UTC 时间的 datetimeoffset 字段的数据框。我想在数据框中添加一列,以显示基于 Zip 的当地时间。看起来 pyzipcode 可能有我需要的东西,但我不知道如何编码。这是我拥有的数据框的示例:
import pandas as pd
from pyzipcode import ZipCodeDatabase
zcdb = ZipCodeDatabase()
data = [{'Zip':78745, 'DateTimeOffsetUTC':'7/8/2020 5:17:48 PM +00:00'}]
df = pd.DataFrame(data)
df["LocalDatetime"] = ???
提前致谢!我认为这可能是一件非常简单的事情,但我是 python.
的新手假设您没有无效数据,map
每个邮政编码的 lambda 应该足以提取时区偏移量。
dt = pd.to_datetime(df['DateTimeOffsetUTC'])
offset = df['Zip'].map(lambda z: pd.Timedelta(hours=zcdb[z].timezone))
df['LocalDatetime'] = (dt + offset).dt.tz_localize(None)
df
Zip DateTimeOffsetUTC LocalDatetime
0 78745 7/8/2020 5:17:48 PM +00:00 2020-07-08 11:17:48