You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提升Pandas中df.to_csv的写入性能?1.14GB数据耗时1分20秒

提升Pandas写入CSV性能的方法

针对你写入1.14GB数据耗时1分20秒的情况,可以试试这些优化手段:

  • 使用C引擎加速:Pandas的to_csv默认有Python和C两种引擎,C引擎基于底层C实现,速度明显优于Python引擎。只需添加engine="c"参数:

    df.to_csv(filename, sep=",", engine="c")
    
  • 移除不必要的输出内容:如果你的业务场景不需要索引列或表头,直接禁用它们,减少写入的数据量:

    df.to_csv(filename, sep=",", index=False, header=False)
    
  • 分块写入数据:将大DataFrame拆分成小块逐块写入,既能降低内存占用压力,也能提升写入效率,尤其适合内存有限的环境:

    df.to_csv(filename, sep=",", chunksize=100000)  # 每10万行执行一次写入操作
    
  • 切换到更高效的文件格式:CSV是文本格式,读写效率远不如列式存储格式。如果业务允许,换成Parquet或Feather格式,读写速度能提升数倍,还能大幅压缩数据体积:

    # 需要先安装pyarrow或fastparquet依赖库
    df.to_parquet(f"{filename}.parquet", engine="pyarrow")
    
  • 启用压缩(针对CSV场景):如果必须使用CSV格式,启用压缩选项,虽然写入时会有少量性能损耗,但生成的文件更小,部分压缩算法(如gzip)的性能影响可以忽略:

    df.to_csv(f"{filename}.gz", sep=",", compression="gzip")
    
  • 优化数据类型:提前将DataFrame的列转换为更紧凑的数据类型,减少整体数据体积,间接提升写入速度:

    # 将类别型列转为category类型(适合类别数量远少于行数的场景)
    df["cat_col"] = df["cat_col"].astype("category")
    # 将整数列转为更小的数值类型(需确保数值范围符合要求)
    df["int_col"] = df["int_col"].astype("int32")
    

内容的提问来源于stack exchange,提问作者user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:25:21