我有一个这样的lambda函数:
from Sastrawi.Stemmer.StemmerFactory import StemmerFactory
factory = StemmerFactory()
stemmer = factory.create_stemmer()
df['tweets_stemming'] = df['tweets_stopwords'].apply(lambda x: [stemmer.stem(stem) for stem in x])我想把这个lambda函数转换成函数,所以我写了这个:
from Sastrawi.Stemmer.StemmerFactory import StemmerFactory
def stemmer_remover(stemming):
factory = StemmerFactory()
stemmer = factory.create_stemmer()
stemming = [stemmer.stem(stemming) for stemming in df['tweets_stopwords']]
return stemming
df['tweets_stemming'] = df['tweets_stopwords'].apply(stemmer_remover)如果使用lambda函数,我的代码运行良好。但是,如果使用函数(而不是lambda)会给出一个错误TypeError: descriptor 'lower' requires a 'str' object but received a 'list'。所以,我想是因为我的熊猫数据帧来自df['tweets_stopwords'] (见图)
如何解决这个问题?

发布于 2021-10-01 23:13:02
您的命名函数与lambda的工作方式不同。
lambda x: [stemmer.stem(stem) for stem in x]与以下内容相同:
def stemmer_remover(x):
return [stemmer.stem(stem) for stem in x]如果你用上面的stemmer_remover替换你的lambda表达式,你会发现它的行为是一样的。
https://stackoverflow.com/questions/69412733
复制相似问题