Как импортировать и читать несколько CSV-файлов по частям, когда у нас есть несколько CSV-файлов, а общий размер всех CSV-файлов составляет около 20 ГБ?
Я не хочу использовать Spark
, так как хочу использовать модель в SkLearn, поэтому мне нужно решение в самом Pandas
.
Мой код:
allFiles = glob.glob(os.path.join(path, "*.csv"))
df = pd.concat((pd.read_csv(f,sep=",") for f in allFiles))
df.reset_index(drop=True, inplace=True)
Но это не удается, так как общий размер всех CSV на моем пути составляет 17 ГБ.
Я хочу читать его по частям, но получаю ошибку, если пытаюсь так:
allFiles = glob.glob(os.path.join(path, "*.csv"))
df = pd.concat((pd.read_csv(f,sep=",",chunksize=10000) for f in allFiles))
df.reset_index(drop=True, inplace=True)
Ошибка, которую я получаю, заключается в следующем:
"невозможно объединить объект типа ""; допустимы только объекты pd.Series, pd.DataFrame и pd.Panel (устаревшие)"
Кто-нибудь может помочь?
df = pd.concat([pd.read_csv(f,sep=",",chunksize=10000) for f in allFiles])
. т.е. с квадратными скобками? Я думаю, что обычные кронштейны дают вам генератор ... - person mortysporty   schedule 04.03.2019pd.read_csv
, похоже, что указание аргументаchunksize
заставляет вызов метода возвращать объектTextFileReader
(а не кадр данных), который необходимо повторить. - person mortysporty   schedule 04.03.2019