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

如何转置大型文件并获取体积更小的数据文件

大体积转置文件优化方案

你的输出文件体积异常偏大的核心原因是to_string()方法为了控制台打印对齐,会自动填充大量无意义的空白字符,这类格式化输出的冗余占比通常能达到70%以上,加上你选择了无压缩的纯文本txt格式,才会生成1.5G的超大文件。可以按以下优先级优化:

  • 优先弃用格式化txt输出,改用压缩存储格式
    转置后的数据为20行、40万列的结构,完全不需要做对齐格式化。如果后续需要通过代码处理数据,直接输出带压缩的存储格式即可,压缩后体积通常只有原txt的1/10~1/20,普通笔记本可以轻松读写:

    import pandas as pd
    
    # 读取csv时指定index_col=0,去掉之前转存csv时生成的多余无名列
    df = pd.read_csv("file.csv", index_col=0)
    transposed_df = df.T
    
    # 输出gzip压缩的csv,兼顾通用性和压缩率
    transposed_df.to_csv("transposed_file.csv.gz", compression="gzip")
    
    # 如果不需要纯文本兼容性,输出parquet格式体积更小、读写速度更快
    # transposed_df.to_parquet("transposed_file.parquet", compression="brotli")
    

    这种方式生成的文件通常在30MB~100MB区间,不会出现打不开的问题。

  • 若必须输出纯文本txt格式,移除格式化冗余
    不要使用to_string()方法,直接用to_csv指定分隔符输出txt即可,不会生成多余的对齐空格,体积比原输出小80%以上:

    # 用制表符做分隔符,无额外空白填充
    transposed_df.to_csv("transposed_file.txt", sep="\t", index=True)
    
  • 跳过中间转csv步骤,降低全流程内存占用
    你最开始用pandas直接处理Excel失败,大概率是默认读取引擎内存占用过高,可以换成内存效率更高的calamine引擎直接读取Excel,省掉中间转csv的步骤,减少磁盘占用和内存消耗:

    # 先安装依赖:pip install python-calamine
    import pandas as pd
    
    df = pd.read_excel("file.xlsx", engine="calamine")
    transposed_df = df.T
    transposed_df.to_csv("transposed_file.csv.gz", compression="gzip")
    
  • 低内存设备可选流式分块处理
    如果设备内存实在不足以加载全量数据,可以用逐列读取原始文件、逐行写入转置文件的流式处理逻辑,全程内存占用可以控制在100MB以内,不需要把全量数据加载到内存中。

注意:转置后的文件有40万列,哪怕体积压缩到很小,普通文本编辑器、Excel这类工具也不支持打开这么宽的表格,后续处理直接用pandas读取压缩文件即可,不需要手动打开查看全量内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 19:18:26