gpt4 book ai didi

python - 将 UTC 日期时间转换为 Pandas 中的本地日期时间

转载 作者:行者123 更新时间:2023-11-28 22:20:56 24 4
gpt4 key购买 nike

我有一个包含 UTC_Time 和 Timezone_info 的数据框。我需要将 UTC_Time 转换为 local_time。我有以下代码,但它不起作用。有没有一种方法可以有效地做到这一点(我可以使用 for 循环并且它可以工作,但我想尽可能避免 for 循环)。

        UTC_Time         Timezone_info
0 2018-02-12 18:16:00 America/New_York
1 2018-02-15 11:39:00 America/Puerto_Rico
2 2018-02-15 22:17:00 America/Los_Angeles
3 2018-02-17 00:59:00 America/Guayaquil
4 2018-02-17 11:34:00 America/Santo_Domingo

我尝试使用的代码是:data['local_time']=data['UTC_Time'].dt.tz_localize('UTC').dt.tz_convert(data['Timezone_info'])

但这行不通。

使它工作的 for 循环(但可能是最慢的方法是):

data['local_time']=0
for i in range(len(data)):
tz=data.at[i,'Timezone_info']
data.at[i,'local_time']=data.at[i,'UTC_Time'].tz_localize(data).tz_convert(tz)

Pythonic 的方法是什么?

最佳答案

tz_convert仅将一个时区作为参数,它不会对其参数进行“矢量化”。

您仍然可以在矢量化形式中使用 tz_convert 但首先您必须使用 group_by根据时区拆分输入。

data['local_time'] = (
data['UTC_Time'].dt.tz_localize('UTC'). # Localize to UTC Time
groupby(data['Timezone_info']). # Group by time zone
transform(lambda g: g.dt.tz_convert(g.name))) # Convert each group to local time zone

我做了一些实验才发现 groupby 键在组对象的 name 成员中可用。这应该添加到 GroupBy.transform 的文档中.

关于python - 将 UTC 日期时间转换为 Pandas 中的本地日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48630178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com