Как добавить Dask dataframe с другим индексом и столбцом - PullRequest
1 голос
/ 07 апреля 2020

У меня есть два CSV-файла. Первый может быть очень большим, а второй - маленьким. Каждый сохраняет некоторые значения, такие как pandas.DataFrame. Поскольку первый файл может быть настолько большим, что не может быть прочитан в память. Я решил использовать Dask для обработки этих двух файлов.

Что я хочу сделать, это объединить два файла. Если индекс и столбец совпадают, я добавлю два значения. Пока добавить новый столбец или индекс. Например, у меня есть два файла, например:

file1:

,col_1,col_2,col_3
row_1,1,2,3
row_2,2,4,6

file2:

,col_1,col_2,col_4
row_1,1,1,1
row_3,2,2,2

Наконец, я получу новый файл, подобный этому:

new_file

,col_1,col_2,col_3,col_4
row_1,2,3,3,1
row_2,2,4,6,0
row_3,2,2,0,2

Тогда какой самый удобный или эффективный способ сделать это с помощью Dask.DataFrame? Есть ли другие решения для обработки таких двух файлов (первый настолько большой, что его нельзя прочитать в память)?

1 Ответ

0 голосов
/ 12 апреля 2020

Чтобы сделать это правильно, ваши два кадра данных должны быть проиндексированы по столбцу, к которому вы хотите присоединиться. Если этот столбец называется 0, то вы, вероятно, захотите вызвать

df = df.set_index(0)

на обоих фреймах данных. Если строки в этом столбце отсортированы, для этого потребуется полное чтение данных (но это можно сделать в небольшом пространстве). Если строки в этом столбце не отсортированы, это будет довольно дорого.

...