Python 读取几百 MB 的大 CSV 文件,用什么方法能避免内存溢出且速度快?
6条回答 默认 最新
阿里嘎多学长 2025-09-23 23:44关注阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
解决方案
当处理大 CSV 文件时,可以使用以下方法避免内存溢出和提高读取速度:
- pandas
read_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())- Dask 的 pandas 支持
另一款选择是使用 Dask,这是一个分布式计算库。它可以让你轻松地读取大 CSV 文件:
import dask.dataframe as dd df = dd.read_csv('file.csv') # 执行任务后,将计算结果合并 result = df.compute()- 使用
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 支持,因为它们既可以避免内存溢出,也可以保持读取速度快。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报- pandas