在pandas数据帧中将单词标记到新列中

2024-10-03 09:17:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图浏览一个pandas数据帧上收集的评论列表,并将这些单词标记化,然后将这些单词放入数据框中的新列中,但我在执行此操作时遇到了一个错误,是

错误说明AttributeError:“unicode”对象没有属性“apwords”

还有别的办法吗?谢谢

def apwords(words):
    filtered_sentence = []
    words = word_tokenize(words)
    for w in words:
        filtered_sentence.append(w)
    return filtered_sentence
addwords = lambda x: x.apwords()
df['words'] = df['complaint'].apply(addwords)
print df

Tags: 数据标记pandasdf列表错误unicode评论
2条回答

您应用lambda函数的方法是正确的,您定义addwords的方法行不通。在

当您定义apwords时,您定义的是function,而不是attribute,因此当您要应用它时,请使用:

addwords = lambda x: apwords(x)

而不是:

^{pr2}$

如果要使用apwords作为属性,则需要定义继承自string的{},并将{}定义为该类中的一个属性。在

function呆在一起要容易得多:

def apwords(words):
    filtered_sentence = []
    words = word_tokenize(words)
    for w in words:
        filtered_sentence.append(w)
    return filtered_sentence
addwords = lambda x: apwords(x)
df['words'] = df['complaint'].apply(addwords)

你不想这样做:

   df['words'] = df['complaint'].apply(apwords)

您不需要定义函数addwords。应定义为:

^{pr2}$

相关问题 更多 >