Как создавать кадры данных из чанков - PullRequest
0 голосов
/ 13 января 2019

У меня огромный файл scv (630 млн строк), и мой компьютер не может прочитать его в 1 кадре данных (не хватает памяти) (После этого я хочу обучить модели для каждого кадра данных). Я сделал 630 блоков и хочу создать фрейм данных из каждого чанка (это будет 630 фреймов данных). Не могу найти или понять ни одно решение этой ситуации. Может кто-то поддержать меня, пожалуйста. Мб, я думаю, что в целом неправильно, и кто-то может высказать новое мнение об этой ситуации. Код:

import os
import pandas as pd

lol=0
def load_csv():
    path="D:\\mml\\"
    csv_path = os.path.join(path,"eartquaqe_train.csv")
    return pd.read_csv(csv_path,sep=',',chunksize=1000000)
dannie = load_csv()

for chunk in dannie:
    lol=lol+1
print(lol)

630

Ответы [ 2 ]

0 голосов
/ 13 января 2019

Используйте метод pandas.read_csv () и укажите либо параметр chunksize , либо создайте итератор для всех строк CSV, используя skiprows , например:

import pandas as pd

path = 'D:\...'

a = list(range(0,6300))

for line in range(0,6300-630,630):
    df = pd.read_csv(path,skiprows=a[0:line]+a[line+630:])
    print(df)

OR

import pandas as pd

path = 'D:\...'

df = pd.read_csv(path,chunksize=6300)
for chunk in df:
    print(chunk)
0 голосов
/ 13 января 2019

Использование -

for chunk in dannie:
    chunk.to_csv('{}.csv'.format(lol))
    lol+=1

Подробнее читайте здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...