Прочитать список файлов, используя Dask - PullRequest
1 голос
/ 03 марта 2020

Я обнаружил, что Dask может читать несколько csv файлов следующим образом:

import dask.dataframe as dd
df = dd.read_csv('myfiles.*.csv')  # doctest: +SKIP

Но что, если я хочу загрузить не все, а некоторые из них:

my_files = ['file1.csv', 'file3.csv','file7.csv']
df = dd.read_csv(my_files)

Но это не работает:

ValueError: Несоответствие длины: ожидаемая ось имеет 2 элемента, новые значения имеют 3 элемента

1 Ответ

1 голос
/ 03 марта 2020

Моя ошибка заключалась в том, что некоторые из моих csv файлов имели разное количество столбцов. Чтение списка файлов на один кадр данных работает следующим образом:

для получения dask.dataframe:

df = dd.read_csv(["small1.csv", "small2.csv"])
print(df.shape)
print(type(df))

Вывод:

(Delayed('int-863f32f2-a8c3-4ac9-b31f-0186541c347c'), 3) 
<class 'dask.dataframe.core.DataFrame'>

Для получения pandas.dataframe:

df = dd.read_csv(["small1.csv", "small2.csv"])
df = df.compute()
print(df.shape)
print(type(df))

Вывод:

(11000, 3)
<class 'pandas.core.frame.DataFrame'>
...