2014-03-19 53 views
3

編輯:描述數據好一點。什麼是一個好的數據結構和工具,用於存儲和處理200,000+個時間序列?

我有一個很大的數據集,目前有200,000+個數據點,但是很快會更大。數據是自發布以來每天一篇文章(網頁)收到的下載次數。我對日曆日不感興趣,但我對發佈後的天數感興趣。

所以數據看起來此刻是這樣的:

id,country,subject,publication_date,day1,day2,day3,day4,day5....day1000 
1,canada,science,2008-01-01,0,3,12,5,33,45,66,3,3..... 
2,usa,english,2014-03-15,1,3,14 

若該等數字代表下載數量每天,每列是因爲公佈的日子。因此,每一行都有不同的列數,因爲有些文章比其他文章長。

這將是一個很好的數據結構來使用該數據,允許以下內容:

  • 易於篩選按國家或主題
  • 容易過濾通過「在X天至少X下載」
  • 容易提取(對於迴歸或羣集)下載數據的

我所熟悉的(雖然不是全部)與Python熊貓,我已經使用了在p一些數據操縱AST。它似乎是這份工作的好選擇,特別是如果我將數據存儲爲TimeSeries的話。我使用TimeSeries索引爲單個文章操縱我的數據到DF,如下所示。

說明:這是一個TimeSeries for一個單一的ID,我需要一個200,000+篇文章的結構。

date downloads 
2000-01-01 3 
2000-01-02 2 
2000-02-08 1 
2000-02-09 1 
2000-02-10 2 

但不知道該從哪裏去。我想從一個固定的日期開始重新集中,所以數據集可以合併。但是,最後我會爲每個數據點(即200,000個以上的列)提供一個列,並使用單獨的DataFrame來存儲這些ID及其特徵(主題/國家/地區)。

會有道理嗎?這麼多列有問題嗎?有沒有更好的辦法?

編輯:首選是繼續使用python,但不會結婚熊貓。如果它必須是另一種語言/工具,那就OK。我會學!

+2

這是傳統關係數據庫所面臨的問題。但是,如果磁盤空間是一個問題,或者如果您想要與numpy和pandas輕鬆集成,PyTables也非常適合這一點。 http://www.pytables.org –

+2

這是一個簡單的多索引和groupby,存儲在HDFStore(由PyTables支持)存儲很好,請看這裏:http://pandas.pydata.org/pandas-docs/ stable/io.html#hdf5-pytables – Jeff

+0

無論哪種情況,您將如何選擇存儲下載數據?你會把它放在一個單元格嗎?請記住我需要能夠總結第X天。 – pocketfullofcheese

回答

0

謝謝@jeff和@Joe Kington。我最終選擇了一款支持HDF5商店的MultiIndex®系列。它的工作很好。

相關問題