Stemming Pandas Dataframe'flora'对象没有属性'split'

时间:2017-11-07 16:17:01

标签: python pandas dataframe stem

import pandas as pd
from nltk.stem import PorterStemmer, WordNetLemmatizer
porter_stemmer = PorterStemmer()

df = pd.read_csv("last1.csv",sep=',',header=0,encoding='utf-8')

df['rev'] = df['reviewContent'].apply(lambda x : filter(None,x.split(" ")))

Dataset

我试图阻止我的数据帧。在令牌化时,我收到

的错误
df['rev'] = df['reviewContent'].apply(lambda x : filter(None,x.split(" ")))

AttributeError:'float'对象没有属性'split'

使用Stemming时我也遇到浮动问题

df['reviewContent'] = df["reviewContent"].apply(lambda x: [stemmer.stem(y) for y in x])

TypeError:'float'对象不可迭代

我该怎么办?

2 个答案:

答案 0 :(得分:2)

在对数据进行标记时,您不需要apply来电。 str.split应该做得很好。此外,您可以拆分多个空格,因此您不必查找空字符串。

df['rev'] = df['reviewContent'].astype(str).str.split()

您现在可以像以前一样运行您的词干分析器:

df['rev'] = df['rev'].apply(lambda x: [stemmer.stem(y) for y in x])

答案 1 :(得分:0)

我们也可以这样写

df['rev'] = df['rev'].astype(str).apply(lambda x: stemmer.stem(x))