我正在开发一个处理非常大的 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')
我的问题是:
pandas
或 dask
这样的库,如果是的话,它们将如何提高性能?任何提示或示例将不胜感激!
允许您在处理大量数据时优化内存使用的机制称为生成器。
您的代码应如下所示:
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')
这里重要的是,您应该避免将所有内容加载到内存中。如果可能的话逐行处理。