我在数据帧中有以下内容:
>;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”)