2013-05-14 44 views
3

我有一個用python編寫的應用程序,它以「datetime value」格式存儲當前文本文件 中的一些值。迄今爲止,這工作得很好。時間序列數據庫與python一起使用

現在的問題是我需要按時間間隔開始檢索數據。 我已經將文件轉換爲一個sqlite數據庫。 但是我發現這個表現真的很差。我跑了像這樣的查詢:

select min(value) from data where dt > '2013-05-13 15:48:13' and dt < '2013-05-13 15:49:13' 

所以我最低的時間間隔是1米。

但是,這似乎需要0.036s,這是非常緩慢的,當我需要產生圖表 甚至很小的時間間隔。

你會建議使用什麼其他方法來解決這個問題。

回答

4

如果你沒有太多的數據,那麼將所有內容加載到一個pandas TimeSeries中。

import pandas as pd 
ts = pd.TimeSeries(range(86400), index=pd.DatetimeIndex(start='2013-05-14 00:00:00', freq='1S', periods=86400)) 

爲今天的每一秒創建一個86400值的TimeSeries。

下面的行需要2.72ms,並返回等待值:

ts.between_time('2013-05-14 15:48:13', '2013-05-14 15:49:13').min() 

你可以有一個不同的頻率,而不是等距值,以及:

> pd.TimeSeries([1,2,3], index=pd.DatetimeIndex([datetime(2013,5,14,0,0,0,100000), datetime(2013,5,14,0,0,0,200000), datetime(2013,5,14,0,0,0,900000)])) 

2013-05-14 00:00:00.100000 1 
2013-05-14 00:00:00.200000 2 
2013-05-14 00:00:00.900000 3 
相關問題