我有一些時間序列數據,我以前使用pytables
存儲爲hdf5文件。我最近嘗試與h5py
庫存儲相同。但是,由於numpy
數組的所有元素都必須具有相同的dtype,因此在使用h5py
庫進行存儲之前,必須將日期(通常是索引)轉換爲'float64
'類型。 當我使用pytables
時,索引及其dtype被保留下來,這使得我可以查詢時間序列而不需要將它全部放入內存中。我想用h5py
這是不可能的。我在這裏錯過了什麼嗎?如果不是,我應該在什麼情況下使用h5py
lib來存儲時間序列數據?我問這個問題的原因,澄清這可以幫助我設計一個更高效的(處理存儲明智的)項目。我應該如何使用h5py lib來存儲時間序列數據
是簡單的代碼,在那裏我失去的索引信息,以便將其存儲爲一個單一的D類對象
dt_range = pd.date_range('2016-12-01','2016-12-10')
data = np.arange(0,20).reshape(-1,2)
df = pd.DataFrame(data,index = dt_range, columns = list('ab'), dtype = 'float')
df.index = df.index.to_julian_date()
df = df.reset_index()
h = h5py.File(r'path\temp.h5', 'w')
dset = h.create_dataset('temp',data = df.values, shape = (10,3))
你可以用'h5py'來讀'tables'創建的文件嗎? – hpaulj
雖然'h5py'可以識別通過'pytables'創建的文件(例如:h.keys()命令),但當我嘗試讀取相同的文件時(例如:h ['pytable-它會拋出這個錯誤:'AttributeError:'切片'對象沒有屬性'編碼' –
我還沒有與'pytables'一起工作。 'h5py'使得文件數據的外觀和行爲與'numpy'數組相似。這就是你的'df.values'正在保存的內容。您可能還需要將大熊貓索引提取到數組中,然後編寫它。你知道很多'numpy',或者只是'pandas'嗎? – hpaulj