作者:W于小北B | 来源:互联网 | 2022-12-02 16:33
1> jpp..:
错误指向此行:
df['content'] = df['content'].apply(lambda x: " ".join(x.lower() for x in x.split() \
if x not in stop_words))
split
在这里用作Python内置str
类的方法。您的错误表明中的一个或多个值df['content']
是类型float
。这可能是因为存在空值(即)NaN
或非空浮点值。
一种解决方法,可以对浮点数进行字符串化,只适用str
于x
使用split
:
df['content'] = df['content'].apply(lambda x: " ".join(x.lower() for x in str(x).split() \
if x not in stop_words))
另外,可能是一个更好的解决方案,应明确使用带有try
/ except
子句的命名函数:
def converter(x):
try:
return ' '.join([x.lower() for x in str(x).split() if x not in stop_words])
except AttributeError:
return None # or some other value
df['content'] = df['content'].apply(converter)
由于pd.Series.apply
只是一个循环而产生的开销,因此您可能会发现列表理解或map
更有效:
df['content'] = [converter(x) for x in df['content']]
df['content'] = list(map(converter, df['content']))