我有稱爲「data_stem」一個大熊貓數據幀和有一個名爲「TWEET_SENT_1」,其有一個字符串象下面(50行)申請搬運工詞幹的熊貓列對每個字
TWEET_SENT_1
列吻的萬人迷交叉
我喜歡這個視頻屍體派對
我想爲「TWEET_SENT_1」列申請搬運工詞幹(對於行的所有的話) 我想下面的代碼,它給出了一個錯誤。請你幫我克服這個
from nltk.stem import PorterStemmer, WordNetLemmatizer
porter_stemmer = PorterStemmer()
data_stem[' TWEET_SENT_1 '] = data_stem[' TWEET_SENT_1 '].apply(lambda x: [porter_stemmer.stem(y) for y in x])
下面是錯誤
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-412-c16b1beddfb5> in <module>()
1 from nltk.stem import PorterStemmer, WordNetLemmatizer
2 porter_stemmer = PorterStemmer()
----> 3 data_stem[' TWEET_SENT_1 '] = data_stem[' TWEET_SENT_1 '].apply(lambda x: [porter_stemmer.stem(y) for y in x])
C:\Users\SampathR\Anaconda2\envs\dato-env\lib\site-packages\pandas\core\series.pyc in apply(self, func, convert_dtype, args, **kwds)
2058 values = lib.map_infer(values, lib.Timestamp)
2059
-> 2060 mapped = lib.map_infer(values, f, convert=convert_dtype)
2061 if len(mapped) and isinstance(mapped[0], Series):
2062 from pandas.core.frame import DataFrame
pandas\src\inference.pyx in pandas.lib.map_infer (pandas\lib.c:58435)()
<ipython-input-412-c16b1beddfb5> in <lambda>(x)
1 from nltk.stem import PorterStemmer, WordNetLemmatizer
2 porter_stemmer = PorterStemmer()
----> 3 data_stem[' TWEET_SENT_1 '] = data_stem[' TWEET_SENT_1 '].apply(lambda x: [porter_stemmer.stem(y) for y in x])
TypeError: 'NoneType' object is not iterable
'data_stem ['TWEET_SENT_1']''中有'None'嗎? TWEET_SENT_1的確有空格嗎? – DyZ
@DYZ非常感謝。 data_stem ['TWEET_SENT_1']中沒有任何內容。是的,TWEET_SENT_1之間有空格。當我執行'porter_stemmer.stem(data_stem.iloc [1,2])'它工作。但是我想將它應用到列的每個單詞和所有行中 –
您需要在應用您的方式之前進行標記化。您在列表理解中執行porter_stemmer.stem(y)的方式。它會逐字逐句逐字逐句逐字逐句逐字逐字處理。 – Satyadev