Pandas大数据帧写入CSV耗时过长如何高效解决?

pandas大数据帧写入csv耗时过长如何高效解决?

优化Pandas大数据帧CSV写入速度

在处理大型Pandas DataFrame时,使用to_csv()函数写入CSV文件经常成为性能瓶颈。本文针对一个耗时近一小时的案例,分析问题并提供高效解决方案。

问题描述:

代码使用glob模块读取多个压缩的CSV文件(.csv.gz),并利用pd.read_csv以分块读取方式(chunksize=100000)加载数据到Pandas DataFrame。然而,将最终的DataFrame写入CSV文件(to_csv())却花费了55分钟。数据量约2000万条记录,100列,主要为数值型数据。代码如下:

import osimport globimport pandas as pdsrc_files = glob.glob(os.path.join('/my/path', "*.csv.gz"))df = pd.DataFrame()  # 初始化一个空DataFramefor file_ in sorted(src_files):    iter_csv = pd.read_csv(file_, sep=',', index_col=False, header=0,                            low_memory=False, iterator=True, chunksize=100000,                            compression='gzip', memory_map=True, encoding='utf-8')    df = pd.concat([chunk for chunk in iter_csv], ignore_index=True)df.to_csv('output.csv', sep='|', header=True, index=False, chunksize=100000, encoding='utf-8')del df

即使使用了分块读取和写入(chunksize=100000),写入速度仍然很慢。

解决方案:

为了提高写入效率,建议使用更适合大规模数据存储的HDF5格式。Pandas的to_hdf()函数可以显著提升写入速度。以下代码展示了如何使用to_hdf()

df.to_hdf(r'path/file.h5', key='df', mode='w')

to_hdf()方法能大幅缩短写入时间。某些情况下,写入100MB数据到HDF5文件只需不到一秒,而to_csv()可能需要30-55秒。因此,to_hdf()是处理大型Pandas DataFrame的更优选择,尤其在写入速度至关重要的场景下。 后续如需读取,可以使用pd.read_hdf()函数。

以上就是Pandas大数据帧写入CSV耗时过长如何高效解决?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1358445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Python字符串格式化报错:花括号不匹配怎么办?
上一篇 2025年12月13日 21:51:22
Python小白如何找到详尽的数据类型文档,特别是列表类型的所有方法?
下一篇 2025年12月13日 21:51:30

相关推荐

发表回复

登录后才能评论
关注微信