处理大型 CSV 文件时如何优化 Python 脚本的性能?

问题描述 投票:0回答:1

我正在开发一个处理非常大的 CSV 文件(大约 5GB)的 Python 脚本,但我注意到存在严重的性能问题。我想优化我的代码以获得更高的效率。这是我所拥有的简化版本:

import csv

def process_csv(file_path):
    with open(file_path, mode='r') as csvfile:
        reader = csv.reader(csvfile)
        for row in reader:
            print(row)  # Currently just printing for debugging

process_csv('large_file.csv')

我的问题是:

  1. 在 Python 中优化大型 CSV 文件的读取和处理的最佳实践是什么?
  2. 我是否应该考虑使用像
    pandas
    dask
    这样的库,如果是的话,它们将如何提高性能?
  3. 是否有特定的技术可以在处理如此大的文件时最大限度地减少内存使用?

任何提示或示例将不胜感激!

python pandas csv dask
1个回答
-1
投票

允许您在处理大量数据时优化内存使用的机制称为生成器。

您的代码应如下所示:

import csv

def process_csv(file_path):
    with open(file_path, mode='r') as csvfile:
        reader = csv.reader(csvfile)
        for row in reader:
           yield row 

process_csv('large_file.csv')

这里重要的是,您应该避免将所有内容加载到内存中。如果可能的话逐行处理。

© www.soinside.com 2019 - 2024. All rights reserved.