【问题标题】:in Pandas how to get a UTC TimeStamp (at a given hour) from a DateTime?在 Pandas 中,如何从 DateTime 获取 UTC 时间戳(在给定时间)?
【发布时间】:2016-10-03 12:22:33
【问题描述】:

我的数据框中有一个变量,看起来像

Day
2015-01-01
2015-02-01

我想生成一个时间变量,它可以在 Day 9 点为我提供当天对应的 EST 时间戳UTC 时间戳早上 00 点(总是早上 9 点,不要问为什么......)。

确切地说,考虑到第一行的输出,我的意思是从2015-01-012015-01-01 9:00 EST2015-01-01 14:00 UTC。如何在 Pandas 中做到这一点?

谢谢!

【问题讨论】:

    标签: python datetime pandas timestamp


    【解决方案1】:
    df.Day = pd.date_range('1/1/2015 09:00', periods=10, freq='D')
    df.Day = df.Day.tz_localize('UTC')
    df.Day_converted = df.Day.tz_convert('US/Eastern')
    

    创建时间序列后,您可以使用 .tz_localize 将其本地化到一个区域,然后进行转换。

    【讨论】:

    • 是的,谢谢,但日期必须来自 Day 变量,而不是硬编码在代码中!
    【解决方案2】:

    这可能是更好的解决方案

    df['time']=df['Day'].apply(lambda x: x + ' 9:00')
    df['time_utc']=df['time'].apply(lambda x: `pd.Timestamp(x).tz_localize('US/Eastern').tz_convert('UTC'))`
    

    【讨论】:

      【解决方案3】:

      如果您想使用单个变量进行操作:

      import pandas as pd
      from datetime import timedelta
      
      ts = pd.Timestamp('2015-01-01')    # Going from 2015-01-01 to ...
      ts = ts + timedelta(hours=9)       # 2015-01-01 9:00 ...
      ts = ts.tz_localize('US/Eastern')  # EST to 
      ts = ts.tz_convert('UTC')          # 2015-01-01 14:00 UTC
      

      【讨论】:

        猜你喜欢
        • 2014-11-21
        • 2012-04-03
        • 2019-06-05
        • 1970-01-01
        • 2012-11-11
        • 1970-01-01
        • 2019-05-02
        • 2011-05-21
        • 2013-03-20
        相关资源
        最近更新 更多