python 爬虫工程师 2025-09-23 23:43 采纳率: 100%
浏览 25
已结题

Python 如何读取大 CSV 文件

Python 读取几百 MB 的大 CSV 文件,用什么方法能避免内存溢出且速度快?

  • 写回答

6条回答 默认 最新

  • 阿里嘎多学长 2025-09-23 23:44
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    当处理大 CSV 文件时,可以使用以下方法避免内存溢出和提高读取速度:

    1. pandasread_csv方法

    你可以使用 pandas 的 read_csv 方法,并设置 chunksize 参数,将 CSV 文件分块读取:

    import pandas as pd
    
    chunksize = 10 ** 6
    for chunk in pd.read_csv('file.csv', chunksize=chunksize):
        # 处理每个块
        print(chunk.head())
    
    1. Dask 的 pandas 支持

    另一款选择是使用 Dask,这是一个分布式计算库。它可以让你轻松地读取大 CSV 文件:

    import dask.dataframe as dd
    
    df = dd.read_csv('file.csv')
    # 执行任务后,将计算结果合并
    result = df.compute()
    
    1. 使用 open 和循环读取 CSV

    最后一款选择是使用 open 文件对象,并循环读取 CSV:

    import csv
    
    with open('file.csv', 'r') as f:
        reader = csv.reader(f)
        for row in reader:
            # 处理每一行
            print(row)
    

    其中,最适合情况的解决方案是使用 pandas read_csv 方法或 Dask 的 pandas 支持,因为它们既可以避免内存溢出,也可以保持读取速度快。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月26日
  • 已采纳回答 9月26日
  • 创建了问题 9月23日