【问题标题】:How can I use timezone as GMT-5:00 to convert timestamps in Python?如何使用时区作为 GMT-5:00 在 Python 中转换时间戳?
【发布时间】:2021-10-14 11:00:36
【问题描述】:

此问题已标记为已回答,但之前尚未回答。这两个链接的答案没有解决我在这里的问题。提供了一个示例,当时区对于数据帧中的所有记录都是给定且恒定的,并且时区是使用标准时区格式(如 America/Los_Angeles)指定的,但这不适用于我的时区被列为小时数的差异,而且这种差异并非在所有记录中都保持不变。

我有一个 pandas 数据框,其中包含两个字段:以 UTC 列出的小时,以及列为 -5:00 的本地时区(例如)。我想修改数据框,以便它创建一个包含本地时间的新字段。

data = [['7:00', '-5:00'], ['6:30', '-5:00'], ['8:00', '-6:00']]

df = pd.DataFrame(data, columns = ['Hour', 'TimeZone'])

我已尝试将 TimeZone 转换为整数,然后使用

df['LocalTime'] = pd.to_datetime(df['Hour'])-datetime.timedelta(hours = df['TimeZone')

但这对我不起作用

我还尝试将时区转换为整数(因为在这种情况下,我知道它们只会作为整数存在),然后我收到一个错误,表明我不能对小时输入使用系列值变量。

有人可以帮我弄清楚我需要做什么来完成这项工作吗?

谢谢, 布拉德

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    尝试使用utc=True 选项转换df.Hour + df.TimeZone

    df['LocalTime'] = pd.to_datetime(df.Hour + df.TimeZone, utc=True)
    
    #    Hour TimeZone                 LocalTime
    # 0  7:00    -5:00 2021-09-07 12:00:00+00:00
    # 1  6:30    -5:00 2021-09-07 11:30:00+00:00
    # 2  8:00    -6:00 2021-09-07 14:00:00+00:00
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-12
      • 2018-03-07
      • 2019-11-06
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 2016-11-12
      • 2015-06-09
      相关资源
      最近更新 更多