用Python从hdf5文件到csv文件



我必须处理hdf5文件。它们中的每一个都包含可以加载到由100列和近5E5行组成的pandas DataFrame中的数据。每个hdf5文件重约130MB。

所以我想从hdf5文件中获取数据,然后应用一些处理,最后将新数据保存在csv文件中。在我的情况下,过程的性能是非常重要的,因为我将不得不重复它。

到目前为止,我一直专注于Pandas和Dask来完成这项工作。任务对于并行化很好,我将在更强大的PC和更多的cpu上获得更好的处理时间。

然而,你们中的一些人已经遇到了这个问题,并找到了最好的优化?

正如其他人在评论中提到的那样,除非您必须将其移动到CSV,否则我建议将其保留在HDF5中。但是,如果必须进行转换,下面将描述如何进行转换。

听起来你有一个将HDF5文件加载到pandas数据帧中的函数。我建议使用dask的延迟API来创建延迟熊猫数据帧列表,然后将它们转换为任务数据帧。下面的片段是从链接页面复制的,并添加了一行保存到CSV。

import dask.dataframe as dd
from dask.delayed import delayed
from my_custom_library import load
filenames = ...
dfs = [delayed(load)(fn) for fn in filenames]
df = dd.from_delayed(dfs)
df.to_csv(filename, **kwargs)

请参阅dd.to_csv()文档,了解有关保存为CSV的选项的信息。

最新更新