У меня есть четыре столбца DataFrame с двумя столбцами токенизированных слов, у которых были удалены стоп-слова и преобразованы в нижний регистр, и теперь я пытаюсь выйти из строя.
Я не уверен, получает ли метод apply()
доступ к серии плюс ее отдельные ячейки или мне нужен другой способ войти в каждую запись так пробовал оба (я думаю!)
from nltk.stem import SnowballStemmer
stemmer = nltk.stem.SnowballStemmer('english')
Я пробовал:
df_2['Headline'] = df_2['Headline'].apply(lambda x: stemmer.stem(item) for item in x)
---- -------------------------------------------------- --------------------- TypeError Traceback (последний последний вызов) в () ----> 1 df_2 ['Headline__'] = df_2 ['Headline' ] .apply (лямбда-x: stemmer.stem (item) для элемента в x)
~ \ AppData \ Local \ Continuum \ anaconda3 \ envs \ learn-env \ lib \ site-packages \ pandas \ core \ Использование series.py (self, fun c, convert_dtype, args, ** kwds) 3192
else: 3193 values = self.astype (object) .values -> 3194 mapped = lib.map_infer (values, f , convert = convert_dtype) 3195 3196, если len (сопоставлено) и isinstance (сопоставлено [0], серия):
pandas / _libs / src \ inference.pyx в pandas ._ libs.lib.map_infer ()
Ошибка типа: объект «генератор» не может быть вызван
Я полагаю, что эта TypeError похожа на ту, что говорит, что объект «List» не может быть вызван, и исправила эту ошибку с помощью метода apply()
и из идей здесь.
df_2['Headline'] = df_2['Headline'].apply(lambda x: stemmer.stem(x))
-------------------------------- ------------------------------------------- AttributeError Traceback (последний вызов последний ) in () ----> 1 df_2 ['Headline'] = df_2 ['Headline']. apply (лямбда x: stemmer.stem (x)) 2 3 df_2.head ()
~ \ AppData \ Local \ Continuum \ anaconda3 \ envs \ learn-env \ lib \ site-packages \ pandas \ core \ series.py in apply (self, fun c, convert_dtype, args, ** kwds) 3192
иначе: 3193 values = self.astype (object) .values -> 3194 mapped = lib.map_infer (values, f, convert = convert_dtype) 3195 3196, если len (mapped) и isinstance (mapped [0], Series):
pandas / _libs / src \ inference.pyx в pandas ._ libs.lib.map_infer ()
в (x) ----> 1 df_2 ['Headline'] = df_2 [ 'Заголовок']. Apply (лямбда x: stemmer.stem (x)) 2 3 df_2.head ()
~ \ AppData \ Local \ Continuum \ anaconda3 \ envs \ learn-env \ lib \ site- пакеты \ nltk \ stem \ snowball.py в стволе (self, word) 1415 1416 "" "-> 1417 word = word.lower () 1418 1419 если слово в self.stopwords или len ( word) <= 2: </p>
AttributeError: у объекта 'list' нет атрибута 'lower'