在Pandas中如何从DateTime获取UTC TimeStamp(在给定的小时)?

时间:2016-06-03 12:22:29

标签: python datetime pandas timestamp

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

的变量
Day
2015-01-01
2015-02-01

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

准确地说,考虑到第一行的输出,我的意思是从2015-01-012015-01-01 9:00 EST2015-01-01 14:00 UTC。我怎么能在熊猫中做到这一点?

谢谢!

3 个答案:

答案 0 :(得分:3)

>>> from itertools import product
>>> lst = ['alpha',['beta','gamma'],['delta','peta','lambda']]
>>> list(product(*(x if isinstance(x, list) else [x] for x in lst)))
[('alpha', 'beta', 'delta'), ('alpha', 'beta', 'peta'), ('alpha', 'beta', 'lambda'), ('alpha', 'gamma', 'delta'), ('alpha', 'gamma', 'peta'), ('alpha', 'gamma', 'lambda')]

创建时间序列后,您可以将其本地化为带有.tz_localize的区域,然后将其转换。

答案 1 :(得分:1)

这可能是更好的解决方案

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'))`

答案 2 :(得分:1)

如果您想使用个别变量:

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