我有一个数据集,大小超过了内存限制,我不想升级机器。从我的阅读中,HDF5可能是解决我的问题的合适方案。但我不确定如何迭代地将数据帧写入HDF5文件,因为我无法将CSV文件加载为数据帧对象。
所以我的问题是如何使用Python Pandas将大型CSV文件写入HDF5文件。
所以我的问题是如何使用Python Pandas将大型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
的HDF API - 我们应该出于兼容性的原因使用那个API... - MaxU - stand with Ukraine