2013-06-19 14 views
6

İki sütunlu bir DataFrame yaşıyorum. Bir sütun zaman damgasıyla doldurulur, diğer sütun ise aynı satırdaki zaman damgasının saat dilimindeki UTC saatini içerir.Bir pandalar veri aralığındaki zaman damgalarının ofseti nasıl ayarlanır?

DataFrame şuna benzer:

In [44]: df 
Out[44]: 
        DATETIME OFFSET 

0 2013-01-01 00:00:00+01:00  1 
1 2013-01-01 01:00:00+01:00  1 
2 2013-01-01 02:00:00+01:00  1 
3 2013-01-01 03:00:00+01:00  1 
4 2013-01-01 04:00:00+01:00  1 
5 2013-01-01 05:00:00+01:00  1 
6 2013-01-01 06:00:00+02:00  2 
7 2013-01-01 07:00:00+02:00  2 
8 2013-01-01 08:00:00+02:00  2 

Ben tzinfo yerine birlikte çalıştı ama başarısız oldum:

In [44]: df 
Out[44]: 
        DATETIME OFFSET 

0 2013-01-01 00:00:00+00:00  1 
1 2013-01-01 01:00:00+00:00  1 
2 2013-01-01 02:00:00+00:00  1 
3 2013-01-01 03:00:00+00:00  1 
4 2013-01-01 04:00:00+00:00  1 
5 2013-01-01 05:00:00+00:00  1 
6 2013-01-01 06:00:00+00:00  2 
7 2013-01-01 07:00:00+00:00  2 
8 2013-01-01 08:00:00+00:00  2 

Ne i elde etmek gibi zaman damgasına satır başına ofset eklemektir uygun bir çözüm bulmak için. Aşağıdaki gibi bir şey hakkında düşünüyorum: (sözde kodu):

Herhangi bir yardım için teşekkür ederiz.

sayesinde Thomas

+1

Yapmak istediğiniz gibi hissettiriyorsunuz t1.tz_convert (9) '(ama bu işe yaramıyor!) –

cevap

6

pytz.FixedOffset bu amaca uygun gibi görünüyor. Buralarda

In [39]: df.apply(lambda x: pd.Timestamp(x['DATETIME'], tz=pytz.FixedOffset(60*x['OFFSET'])), axis=1) 
Out[39]: 
0 2013-01-01 00:00:00+01:00 
1 2013-01-01 01:00:00+01:00 
2 2013-01-01 02:00:00+01:00 
3 2013-01-01 03:00:00+01:00 
4 2013-01-01 04:00:00+01:00 
5 2013-01-01 05:00:00+01:00 
6 2013-01-01 06:00:00+02:00 
7 2013-01-01 07:00:00+02:00 
8 2013-01-01 08:00:00+02:00 
dtype: object 

Diğerleri benden daha fazla zaman serileri kullanmak, bu nedenle bu en iyi uygulama olmayabilir.

+0

Teşekkürler Dan, bir çekicilik gibi çalışıyorum ve ne yaptığım için yeterli. – THM