有效读取大型 CSV 文件
由于内存限制,在 Python 中读取和处理大型 CSV 文件可能具有挑战性。对于包含数百万行和数百列的文件,此问题变得更加突出。
内存问题和优化
您当前的代码尝试从将 CSV 文件放入列表中。但是,这种方法对于大文件来说效率较低,因为它将整个数据集加载到内存中。
要解决此内存问题,请在读取数据时处理数据。使用一次生成一行的生成器函数,如下所示:
import csv def getstuff(filename, criterion): with open(filename, "rb") as csvfile: datareader = csv.reader(csvfile) yield next(datareader) # yield the header row count = 0 for row in datareader: if row[3] == criterion: yield row count += 1 elif count: # stop when exceeding the adjacent rows of criteria return
此更新的代码逐行生成与指定条件匹配的行。它消除了将整个数据集保留在内存中的需要。
性能改进
除了内存优化之外,还有其他技术可以提高性能:
通过采用这些策略,您可以显着提高 Python 代码处理大型 CSV 文件的效率。
以上是如何在Python中有效读取和处理大型CSV文件?的详细内容。更多信息请关注PHP中文网其他相关文章!