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

如何用Pandas减小CSV文件大小?删行后导出文件变大的原因及解决办法

Pandas导出CSV文件变大的原因及解决办法

为什么导出后的CSV更大?

  • 数据类型膨胀:原CSV里的数值可能用了更精简的存储格式(比如小范围整数存成短格式、浮点数少几位小数),但Pandas默认会把数值转成精度更高的类型(比如int64、float64),每个字段占的字节数直接变多。
  • 默认导出冗余内容:Pandas默认会给所有字符串加引号,哪怕字段里没有分隔符;另外如果原文件缺失值是空字符串,Pandas导出时会写成NaN,这比空字符串占更多字符。
  • 额外导出了索引列:to_csv()默认会把DataFrame的索引写入文件,如果原CSV本来没有索引列,等于平白多了一整列数据,体积自然变大。

怎么减小文件大小?

  • 关闭索引导出:
    直接加index=False参数,避免写入多余的索引列:
    buses.to_csv('simplified_matrix2.csv', index=False)
    
  • 压缩数据类型:
    根据数据实际范围,把数值类型转成更紧凑的格式,比如大整数转成int32/int16,浮点数转成float32:
    # 示例:调整整数列类型
    buses['your_int_col'] = buses['your_int_col'].astype('int32')
    # 调整浮点数列类型
    buses['your_float_col'] = buses['your_float_col'].astype('float32')
    buses.to_csv('simplified_matrix2.csv', index=False)
    
  • 限制浮点数精度:
    用float_format指定浮点数保留的小数位数,减少每个字段的字符数:
    # 保留2位小数,按需调整位数
    buses.to_csv('simplified_matrix2.csv', index=False, float_format='%.2f')
    
  • 减少不必要的引号:
    只在字段包含分隔符时加引号,避免冗余的引号占用空间:
    from csv import QUOTE_MINIMAL
    buses.to_csv('simplified_matrix2.csv', index=False, quoting=QUOTE_MINIMAL)
    
  • 优化缺失值存储:
    把Pandas默认的NaN替换成空字符串,减少字符占用:
    buses.fillna('', inplace=True)
    buses.to_csv('simplified_matrix2.csv', index=False)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:15:35