Python中使用Simplemma处理数据集全列文本及TypeError报错解决
错误原因
text_lemmatizer 接口仅支持传入字符串/字节类型的输入,你直接传入df['Tekst']这个pandas Series对象,和接口要求的参数类型不匹配,因此触发类型报错。
修复方案
使用pandas的apply方法逐行处理列内的每个字符串单元即可,两种常用实现方式如下:
- 方案1:将每一行的词形还原结果以列表形式存储到新列
from simplemma import text_lemmatizer langdata = simplemma.load_data('nl') df['Tekst_lemmatized'] = df['Tekst'].apply(lambda text: text_lemmatizer(text, langdata))
- 方案2:将还原后的词重新拼接为空格分隔的字符串存储到新列
df['Tekst_lemmatized_str'] = df['Tekst'].apply(lambda text: ' '.join(text_lemmatizer(text, langdata)))
异常兼容处理
如果你的Tekst列存在空值、数值类型等非标准字符串内容,可以增加兼容逻辑避免报错:
import pandas as pd df['Tekst_lemmatized'] = df['Tekst'].apply( lambda text: text_lemmatizer(str(text), langdata) if pd.notna(text) else [] )
内容的提问来源于stack exchange,提问作者marita
相关产品推荐
相关产品推荐

