Чтение большого CSV-файла в dataframe - PullRequest
0 голосов
/ 15 января 2020

У меня есть большой CSV-файл (13 ГБ), который я sh могу прочитать в кадре данных в Python. Поэтому я использую:

txt = pd.read_csv(r'...file.csv', sep=';', encoding="UTF-8", iterator = True, chunksize=1000)

Это прекрасно работает, но данные содержатся в типе pandas .io.parsers.TextFileReader , и я хочу, чтобы они были в фрейм данных, чтобы манипулировать данными.

Мне удается получить образец данных в виде фрейма данных, используя:

txt.get_chunk(300)

Но я бы хотел, чтобы все данные были внутри кадр данных. Итак, я попробовал:

for df1 in txt:
df.append(df1)

Я также попробовал:

df2 = pd.concat([chunk for chunk in txt])

Не сработало. Может кто-нибудь помочь мне?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 15 января 2020

Попробуйте взглянуть на этот ответ , в частности dask read_csv может помочь.

0 голосов
/ 15 января 2020

При чтении файла вы можете поместить часть данных в переменную, используя параметр 'nrows'.

txt = pd.read_csv(r'...file.csv', sep=';', encoding="UTF-8", nrows=1000)

Однако в таких случаях вы предпочитаете использовать более крупный случай, чтобы иметь дело с огромными данными. Вы также можете использовать несколько экземпляров, настроив Dask.

...