Вопрос: Вы сохраняете свои промежуточные результаты?x.apply()
создает копию вашего оригинала Series
с соответствующими преобразованиями, примененными к каждому элементу Series
.Ниже приведен пример того, как это может повлиять на ваш код ...
Начнем с подтверждения того, что word_tokenize()
работает с образцом фрагмента текста.
>>> import pandas as pd
>>> from nltk import word_tokenize
>>> word_tokenize('hello how are you') # confirming that word_tokenize works.
['hello', 'how', 'are', 'you']
Затемдавайте создадим Series
для игры.
>>> s = pd.Series(['hello how are you',
'lorem ipsum isumming lorems',
'more stuff in a line'])
>>> print(s)
0 hello how are you
1 lorem ipsum isumming lorems
2 more stuff in a line
dtype: object
Выполнение word_tokenize
с использованием функции apply()
в интерактивном приглашении Python показывает, что оно токенизирует ...
Но не 'Это означает, что это копия ... а не постоянное изменение s
>>> s.apply(word_tokenize)
0 [hello, how, are, you]
1 [lorem, ipsum, isumming, lorems]
2 [more, stuff, in, a, line]
dtype: object
Фактически мы можем вывести s
, чтобы показать, что оно не изменилось ...
>>> print(s)
0 hello how are you
1 lorem ipsum isumming lorems
2 more stuff in a line
dtype: object
Если вместо этого мы добавим метку, в данном случае wt
к результатам вызова функции apply()
, это позволит нам сохранить результаты навсегда.Что мы можем увидеть, напечатав wt
.
>>> wt = s.apply(word_tokenize)
>>> print(wt)
0 [hello, how, are, you]
1 [lorem, ipsum, isumming, lorems]
2 [more, stuff, in, a, line]
dtype: object
Выполнение этого в интерактивном приглашении позволяет нам легче обнаружить такое условие, но запуск его в сценарии иногда означает, что факт, что копия былапроизойдет, пройдет бесшумно и без указания.