2
我有一個數據集太大而無法直接讀入內存。我不想升級機器。從我的閱讀中,HDF5可能是解決我的問題的合適解決方案。但我不確定如何迭代地將數據框寫入HDF5文件,因爲我無法將csv文件作爲數據框對象加載。如何在python中將大型csv文件寫入hdf5?
所以我的問題是如何用python熊貓將大型CSV文件寫入HDF5文件。
我有一個數據集太大而無法直接讀入內存。我不想升級機器。從我的閱讀中,HDF5可能是解決我的問題的合適解決方案。但我不確定如何迭代地將數據框寫入HDF5文件,因爲我無法將csv文件作爲數據框對象加載。如何在python中將大型csv文件寫入hdf5?
所以我的問題是如何用python熊貓將大型CSV文件寫入HDF5文件。
您可以閱讀使用chunksize
參數塊CSV文件,每個塊附加到文件HDF:
hdf_key = 'hdf_key'
df_cols_to_index = [...] # list of columns (labels) that should be indexed
store = pd.HDFStore(hdf_filename)
for chunk in pd.read_csv(csv_filename, chunksize=500000):
# don't index data columns in each iteration - we'll do it later ...
store.append(hdf_key, chunk, data_columns=df_cols_to_index, index=False)
# index data columns in HDFStore
store.create_table_index(hdf_key, columns=df_cols_to_index, optlevel=9, kind='full')
store.close()
感謝您的回答。我不熟悉pytables包。有沒有可能使用h5py? –
Pandas基於'pytables'實現它自己的HDF API--我們應該使用該API來兼容原因... – MaxU
因此不可能使用h5py? –