Выполните групповую обработку и примените: ошибка значения Ожидаемая ось имеет 6 элементов, новые значения имеют 5 элементов - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь свернуть строки кадра данных на основе ключа. Мой файл большой, и панды выдают ошибку памяти. В настоящее время я пытаюсь использовать DASK. Я прилагаю здесь фрагмент кода.

def f(x):
        p = x.groupby(id).agg(''.join).reset_index()
        return p
metadf = pd.DataFrame(columns=['c1','p1','pd1','d1'])
df = df.groupby(idname).apply(f, meta=metadf).reset_index().compute()

p имеет ту же структуру, что и metadf. Форма обоих фреймов данных одинакова. Когда я выполняю это, я получаю следующую ошибку:

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

Что мне здесь не хватает? Есть ли другой способ свернуть строки на основе ключа в dask?

The task in hand, to do the following sample in a dask dataframe
Input csv file :
key,c1,c2,c3......,cn
1,car,phone,cat,.....,kite
2,abc,def,hij,.......,pot
1,yes,no,is,.........,hello
2,hello,yes,no,......,help

Output csv file:
key,c1,c2,c3,.......,cn
1,caryes,phoneno,catis,.....,kitehello
2,abchello,defyes,hijno,....,pothelp

1 Ответ

0 голосов
/ 16 мая 2018

В этом случае meta= соответствует выходу df.groupby(...).apply(f), а не только выводу f.Возможно, они немного отличаются друг от друга?

Я бы решил эту проблему, сначала вообще не указав meta=.Dask.dataframe предупредит вас, требуя, чтобы вы были явными, но, надеюсь, все равно будет развиваться, если он сможет определить правильные типы и столбцы, выполнив некоторые примеры данных через вашу функцию.

...