2016-08-12 164 views
2

我正在處理python中的大量文件,並且需要直接在HDF5中寫入輸出(每個輸入文件一個數據幀)。 我想知道從我的腳本中直接寫入pandas數據幀到HDF5的最佳方式是什麼?我不確定是否有像hdf5這樣的python模塊,hadoopy可以做到這一點。在這方面的任何幫助將不勝感激。寫一個熊貓數據幀到HDF5

+0

http://matthewrocklin.com/blog/work/2016/02/22/dask-distributed-part-2 –

+0

Nickil建議編輯將HDFS更改爲HDF5(然後基於此進行回答),但HDFS和HDF5似乎對您的問題有意義......您是指哪個? – Foon

回答

1

很難給你一個很好的答案,這個相當普遍的問題。

你不清楚你將如何使用(讀取)你的HDF5文件 - 你是否有條件地選擇數據(使用where參數)?

杉木所有你需要打開一個存儲對象的:

store = pd.HDFStore('/path/to/filename.h5') 

現在你可以編寫(或追加)商店(我在這裏使用blosc壓縮 - 這是相當快速,高效的),旁邊我將使用data_columns參數,以指定必須建立索引的列(這樣你就可以在where參數以後使用這些列時,你會讀你HDF5文件):

for f in files: 
    #read or process each file in/into a separate `df` 
    store.append('df_identifier_AKA_key', df, data_columns=[list_of_indexed_cols], complevel=5, complib='blosc') 

store.close()