Чтение огромного файла .csv

| | |

В настоящее время я пытаюсь прочитать данные из файлов .csv в Python 2.7, содержащих до 1 миллиона строк и 200 столбцов (размер файлов варьируется от 100 МБ до 1,6 ГБ). Я могу сделать это (очень медленно) для файлов с менее 300 000 строк, но как только я превыслю это, я получаю ошибки памяти. Мой код выглядит следующим образом:

def getdata(filename, критерии): data=[] для критерия в критерии: данные. append(getstuff(имя файла, критерий)) вернуть данные def getstuff(имя файла, критерий): импортировать csv data=[] с открытым(имя файла, "rb") как csvfile: datareader=csv.reader(csvfile) для строки в datareader: if row[3]=="заголовок столбца": data.append(row) elif len(data)<2 and row[3]!=criterion: pass elif row[3]==criterion: data.append(row ) else: возвращаемые данные 

Причина использования предложения else в функции getstuff заключается в том, что все элементы, соответствующие критерию, будут перечислены вместе в файле csv, поэтому я выхожу из цикла, когда Я пропускаю их, чтобы сэкономить время.

Мои вопросы:

  1. Как я могу получить это для работы с файлами большего размера?

  2. Можно ли как-нибудь сделать это быстрее?

Мой компьютер 8 ГБ оперативной памяти, 64-разрядная версия Windows 7 и процессор с частотой 3,40 ГГц (не знаю, какая информация вам нужна).

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method