从时间戳转换时区

我在数据帧中有以下内容:

>df['timestamps'].loc[0]
时间戳('2014-09-02 20:24:00')

我知道它使用的时区(我想它是GMT),并希望将整个列转换为EST。我怎样才能在熊猫身上做到这一点

作为参考,我发现了以下其他线程:

  • 将unix时间戳更改为其他时区
  • 熊猫:在GMT中从CSV读取时间戳,然后重新采样

但是它们使用的是datetime时间戳。例如:

>datetime.datetime.fromtimestamp(df['timestamps'].loc[0],tz=None)
返回:
TypeError回溯(最近一次调用上次)
----&燃气轮机;2 datetime.datetime.fromtimestamp(ts,tz=None)
TypeError:需要一个整数(获取类型时间戳)

只需使用tz_convert方法即可

假设您有一个Timestamp对象:

stamp=Timestamp('1/1/2014 16:20',tz='America/Sau Paulo')
new_stamp=stamp.tz_convert('美国/东部')

如果您对转换日期范围感兴趣:

range=date\u range('2014年1月1日'、'2015年1月1日'、freq='S',tz='America/SaoèPaulo')
新建范围=范围.tz\u转换('US/Eastern')

对于大型时间序列:

将numpy导入为np
ts=系列(np.random.randn(len(range)),range)
新的=转换为(“美国/东部”)

如另一个答案所述,如果您的数据没有设置时区,您需要tz_本地化it:

data.tz\u本地化(“utc”)

发表评论