1
我運行的模型將數據輸出到多個熊貓幀,然後將這些幀保存到HDF5文件。該模型運行數百次,每次將新列(多索引)添加到現有的HDF5文件的框架中。這是通過Pandas merge
完成的。由於每次運行時幀的長度都不相同,因此幀中會有大量值爲NaN
。熊貓和HDF5文件大小減少
完成足夠的模型運行後,如果行或列與具有錯誤的模型運行相關聯,則會從幀中刪除數據。在那個過程中,新的數據幀被放入一個新的HDF5文件。以下僞蟒示出了該過程:
with pandas.HDFStore(filename) as store:
# figure out which indices should be removed
indices_to_drop = get_bad_indices(store)
new_store = pandas.HDFStore(reduced_filename)
for key in store.keys():
df = store[key]
for idx in indices_to_drop:
df = df.drop(idx, <level and axis info>)
new_store[key] = df
new_store.close()
新HDF5文件最終被原件的尺寸的約10%。文件中唯一的區別是所有的NaN
值不再相等(但都是numpy float64值)。
我的問題是,如何在現有的hdf5文件上實現這種文件大小縮減(大概是通過管理NaN
值)?有些時候我不需要做上述程序,但是我正在做這件事來減少這種情況。有沒有現有的熊貓或PyTables命令可以做到這一點?非常感謝你提前。
謝謝,這樣做! – James