我的数据框中有一个看起来像
的变量Day
2015-01-01
2015-02-01
我想生成一个时间变量,在日 9时为我提供当天相应 EST时间戳的 UTC时间戳 :早上00点(总是早上9点,不要问为什么......)。
准确地说,考虑到第一行的输出,我的意思是从2015-01-01
到2015-01-01 9:00 EST
到2015-01-01 14:00 UTC
。我怎么能在熊猫中做到这一点?
谢谢!
答案 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