2016-03-25 8 views
12

Ben bir veri sütunu kullanılarak Pandalar içinde zaman serisi verilerinin AYDK yeniden örnekleme, aşağıdaki dataframe örneğin, mükemmel çalışacaktır anlamak Veriler hali hazırda bir OHLC formatında mı? Benim veri formatında ise ne API AYDK yöntemini toplayabilir dolayısıyla her sütun için bir AYDK dilim hesaplar Gönderen:Pandalar AYDK toplama

   ctime openbid highbid lowbid closebid 
0  1443654000 1.11700 1.11700 1.11687 1.11697 
1  1443654060 1.11700 1.11712 1.11697 1.11697 
2  1443654120 1.11701 1.11708 1.11699 1.11708 

ben yeniden numune çalıştığımda her biri için bir AYDK olsun şöyle sütunlar,:

     openbid        highbid   \ 
         open  high  low close  open  high 
ctime                  
2015-09-30 23:00:00 1.11700 1.11700 1.11700 1.11700 1.11700 1.11712 
2015-09-30 23:01:00 1.11701 1.11701 1.11701 1.11701 1.11708 1.11708 
... 
             lowbid        \ 
         low close  open  high  low close 
ctime                  
2015-09-30 23:00:00 1.11700 1.11712 1.11687 1.11697 1.11687 1.11697 
2015-09-30 23:01:00 1.11708 1.11708 1.11699 1.11699 1.11699 1.11699 
... 

        closebid        
         open  high  low close 
ctime              
2015-09-30 23:00:00 1.11697 1.11697 1.11697 1.11697 
2015-09-30 23:01:00 1.11708 1.11708 1.11708 1.11708 

biri bana diz boyu pandalar kılavuzunda almak zorunda kalmadan, lütfen paylaşmaya istekli olduğunu bunun için hızlı bir (imsi) çözüm var mı?

Teşekkürler.

ps, ​​bu cevap var - Converting OHLC stock data into a different timeframe with python and pandas - ama 4 yıl önceydi, bu yüzden bazı ilerlemeler olduğunu umuyorum.

cevap

19

Bu, bağladığınız yanıta benzer, ancak biraz daha temiz ve daha hızlıdır, çünkü lambdalar yerine optimize edilmiş toplamaları kullanır.

resample(...).agg(...) sözdiziminin pandalar sürüm 0.18.0 olmasını gerektirdiğini unutmayın.

In [101]: df.resample('1H').agg({'openbid': 'first', 
           'highbid': 'max', 
           'lowbid': 'min', 
           'closebid': 'last'}) 
Out[101]: 
         lowbid highbid closebid openbid 
ctime             
2015-09-30 23:00:00 1.11687 1.11712 1.11708 1.117 
+0

Evet Ben onunla gideceğim; pandaları güncellemek anlamına geliyor, ancak işlevimin gidiş yönü tercih edilen seçenek anlamına geliyor. Teşekkürler. – user3439187

+1

NAN'larla ilgilenmek için 'fill_method = 'bfill' yöntemini bu çözüme ekleyebilir miyim? – user3439187

+0

Son soruyu unutun, yöntem .bfill() – user3439187