2016-04-15 30 views
2
mydata = [{'datetime' : '2015-09-01 00:00:23.205', 'Timezoneoffset': -5}, 
     {'datetime' : '2015-09-01 00:41:27.659', 'Timezoneoffset': -6}, 
     {'datetime' : '2015-09-01 00:13:40.897', 'Timezoneoffset': -1}, 
     {'datetime' : '2015-09-02 00:42:06.007', 'Timezoneoffset': 5}] 
t = pd.DataFrame(mydata) 
t.datetime = pd.to_datetime(t.datetime,format='%Y-%m-%d %H:%M:%S.%f') 

我想創建第三列這應該是這樣的:如何將時區偏移添加到pandas datetime?

2015-08-31 19:00:23.205 
2015-08-31 18:41:27.659 
2015-08-31 23:13:40.897 
2015-09-01 05:42:06.007 

任何幫助表示讚賞。謝謝!

回答

3

構建TimedeltaIndex並將其添加到現有的datetime列:

In [241]: 
t['datetime_off'] = t['datetime'] + pd.TimedeltaIndex(t['Timezoneoffset'], unit='h') 
t 

Out[241]: 
    Timezoneoffset    datetime   datetime_off 
0    -5 2015-09-01 00:00:23.205 2015-08-31 19:00:23.205 
1    -6 2015-09-01 00:41:27.659 2015-08-31 18:41:27.659 
2    -1 2015-09-01 00:13:40.897 2015-08-31 23:13:40.897 
3    5 2015-09-02 00:42:06.007 2015-09-02 05:42:06.007 
1

你可以的Timezoneoffsettype轉換爲timedelta64[h](小時),然後將它們添加

In [105]: t['datetime'] + t['Timezoneoffset'].astype('timedelta64[h]') 
Out[105]: 
0 2015-08-31 19:00:23.205 
1 2015-08-31 18:41:27.659 
2 2015-08-31 23:13:40.897 
3 2015-09-02 05:42:06.007 
dtype: datetime64[ns]