python - 如何在 python 中将大型 csv 文件写入 hdf5?

标签 python pandas hdf5

我的数据集太大,无法直接读入内存。而且我不想升级机器。根据我的阅读,HDF5 可能是适合我的问题的解决方案。但我不确定如何将数据帧迭代写入 HDF5 文件,因为我无法将 csv 文件作为数据帧对象加载。

所以我的问题是如何使用 python pandas 将大型 CSV 文件写入 HDF5 文件。

最佳答案

您可以使用 chunksize 参数分块读取 CSV 文件,并将每个 block 附加到 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()

关于python - 如何在 python 中将大型 csv 文件写入 hdf5?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46620478/

相关文章:

python - 以下 python 代码返回什么数据类型?

python - Discord 机器人引发类类型错误

python - CMake 错误 : The following variables are used in this project, 但它们被设置为 NOTFOUND。 PYTHON_LIBRARIES(高级)

keras - 谷歌合作实验室,Keras : Save model in HDF5 file format and download it to Laptop

r - 如何在R中处理hdf5文件?

python - 当使用 "pandas.read_hdf() "读取巨大的 HDF5 文件时,为什么我仍然得到 MemoryError 即使我通过指定 block 大小读取 block ?

python - 如何生成python脚本的python exe,包括其他python脚本

python - Pandas DataFrame 列分配 ValueError : Wrong number of items passed

python - 我如何将 pandas 的 .explode() 与 .split() 在多列上与一个附加行结合起来

python - Pandas 使用另一列的值移动日期