【发布时间】:2021-05-24 04:00:28
【问题描述】:
我必须处理 hdf5 文件。它们中的每一个都包含可以加载到由 100 列和近 5E5 行组成的 pandas DataFrame 的数据。每个 hdf5 文件重约 130MB。
所以我想从 hdf5 文件中获取数据,然后进行一些处理,最后将新数据保存在 csv 文件中。就我而言,过程的性能非常重要,因为我将不得不重复它。
到目前为止,我一直专注于 Pandas 和 Dask 来完成工作。 Dask 有利于并行化,我将通过更强大的 PC 和更多的 CPU 获得良好的处理时间。
但是你们中的一些人已经遇到过这个问题并找到了最佳优化?
【问题讨论】:
-
欢迎来到 StackOverflow!如果没有更多细节,很难提供具体的指导。您的问题可能会被否决或关闭,因为它非常开放。一般来说,我会说 dask 和 pandas 是很好的库,而且将大量数据从 HDF5 转换为 CSV 涉及从用于大量数据的压缩二进制存储格式转变为易于阅读的低效存储格式编码错误和其他问题。如果你必须这样做,那么你可能是正确的开始。但我唯一的建议是尽量不要这样做 :) 祝你好运!
-
@Michael Delgado 对 HDF5 与 CSV 的文件大小和性能提出了很好的观点。另一个考虑因素:您现在必须跟踪 HDF5 文件和导出的 CSV 文件。只有在必要时才应该这样做。否则,您最好编写代码以原生格式读取 HDF5 数据。
-
感谢@Michael Delgado 和@kcw78 的cmets。你说的对。如果有人想知道使用 csv 文件而不是 hdf5 是否会很有趣,那么您的 cmets 会为不选择此选项提供很好的论据。如果不必这样做,我不会将 hdf5 转换为 csv。
标签: python pandas csv dask hdf5