Более быстрая итерация через огромный CSV-файл с генератором - PullRequest
0 голосов
/ 14 октября 2019

Мне нужно работать с огромным CSV-файлом (3-4 ГБ, около 100 миллионов строк). Мне нужен более быстрый способ пройти через это.

Он слишком большой для загрузки в память, поэтому я попытался использовать функцию генератора для циклического прохождения через CSV. Проблема в том, что это очень медленно. Требуется около 1 дня для кода, чтобы перебрать файл CSV. Как я могу сделать намного быстрее?

import csv

def csv_generator(file):

    with open(filename, "r") as csvfile:
        data=csv.reader(csvfile)

        for row in data:
            yield row

filename='tickdata.csv' 

data = csv_generator(filename)

import datetime as dt
import numpy as np
import pandas as pd
from IPython.display import clear_output

dt_start = dt.datetime.now()
rows=0

while rows is not None:
    rows=next(data)
    print(rows) # or something else
    clear_output()  

dt_finish = dt.datetime.now()
time=dt_finish-dt_start
print(time)

Мне нужен метод, который я мог бы использовать для более быстрого прогресса. Может кто-нибудь порекомендовать мне что-нибудь? Заранее спасибо

...