Ошибка типа: <lambda>() отсутствует 1 обязательный позиционный аргумент: 'df' при использовании data.head () для кадра данных dask - PullRequest
1 голос
/ 16 апреля 2019

Я пытаюсь выполнить data.head(), чтобы просмотреть кадр данных dask и получить следующую ошибку: TypeError: <lambda>() missing 1 required positional argument: 'df'

Эта ошибка, в частности, возникает после выполнения лямбда-функции с использованием map_partitions (как показано в коде ниже), котораяпытается добавить столбец в фрейм данных.Я вижу новый столбец, добавленный в структуру dask dataframe этой строкой, однако data.head () завершается ошибкой.

import dask.dataframe as dd
from selectolax.parser import HTMLParser

data['text'] = dd.map_partitions(
    lambda df : df.apply(
        lambda x : HTMLParser(x['text']).body.text(separator=' '
            ).replace('\n',' '),axis=1),
    meta='str')
data.head()

В моем блокноте data.head () работает, пока я не выполню эту строку, поэтому яподозрение на ошибку происходит в строке, выполняющей map_partitions ().

1 Ответ

0 голосов
/ 16 апреля 2019

Скорее всего, вам нужен data.map_partitions, т. Е. Метод в кадре данных, а не функция, которую вы использовали.

Кроме того, похоже, что вы могли бы использовать простое map здесь:

data['text'] = data.text.map(
    lambda x: HTMLParser(x).body.text(separator=' '
        ).replace('\n',' ')
)

(хотя я могу неправильно понять, что делает ваш код)

...