gpt4 book ai didi

python - 将日期时间列转换为不同的时区 Pandas

转载 作者:太空狗 更新时间:2023-10-29 20:37:49 25 4
gpt4 key购买 nike

我有两个日期时间列,当我将它们读入内存时它们是天真的,但实际上它们在美国/东部。我只想将这两列都转换为 US/Central。

我找到了一种有效的方法,但似乎我正在做一个解决方法。我将 call_start 和 call_end 列更改为命名为“开始”和“结束”,这样我就不会得到重复的列名。然后,我为这些列中的每一列创建了一个单独的 datetimeindex 并重置了索引。

aht.set_index(pd.DatetimeIndex(aht['start']).tz_localize('US/Eastern').tz_convert('US/Central'), inplace = True, drop = True)
aht.index.names = ['call_start']
aht = aht.reset_index()
aht.set_index(pd.DatetimeIndex(aht['end']).tz_localize('US/Eastern').tz_convert('US/Central'), inplace = True, drop = True)
aht.index.names = ['call_end']
aht = aht.reset_index()

我最终得到:

                 call_end                  call_start              start                 end
2016-01-13 06:05:01-06:00 2016-01-13 06:02:00-06:00 01/13/2016 07:02 01/13/2016 07:05
2016-01-13 06:07:00-06:00 2016-01-13 06:03:16-06:00 01/13/2016 07:03 01/13/2016 07:07
2016-01-13 06:09:13-06:00 2016-01-13 06:06:02-06:00 01/13/2016 07:06 01/13/2016 07:09
2016-01-13 06:17:51-06:00 2016-01-13 06:06:20-06:00 01/13/2016 07:06 01/13/2016 07:17

这是最好的方法吗?所有其他数据都在中央时间,所以我只是想确保这个文件也是如此,所以当我将文件合并在一起时它更有意义。不过,我不关心那里是否有实际的时区戳 - 有没有办法在我创建新列后轻松去除它?

最佳答案

您不需要往返于 DatetimeIndex,因为这些方法也可通过 dt 访问器用于系列(列):

aht['call_start'] = aht['start'].dt.tz_localize('US/Eastern').dt.tz_convert('US/Central')

end也是如此。
要删除时区信息但将其保留在本地时间,您可以在之后执行另一个 .dt.tz_localize(None)(请参阅此问题:https://stackoverflow.com/a/34687479/653364)

关于python - 将日期时间列转换为不同的时区 Pandas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34789888/

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