【发布时间】:2018-07-15 18:11:56
【问题描述】:
我有一个包含 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 的方法是什么?
【问题讨论】:
标签: python python-3.x pandas pytz