从数据帧列中删除无意义的单词



数据帧列包含的句子很少,三个字母和两个字母的单词没有意义。我想在数据帧列中找到所有这些单词,然后从数据帧列中删除它们。DF-

id      text
1       happy birthday syz
2       vz
3       have a good bne weekend 

我想 1( 找到所有长度小于 3 的单词。(这将返回 syz、vz、bne(2(删除这些词(请注意,停用词已被删除,因此数据帧列中现在不存在"a"、"the"等词,上面的数据帧只是一个示例(

我尝试了以下代码,但它不起作用

def word_length(text):
    words = []
    for word in text:
        if len(word) <= 3:
            words.append(word)
    return(words)
short_words = df['text'].apply(word_length).sum()

输出应该是-

id      text
1       happy birthday 
2       
3       have good weekend 

您将功能应用于单词的连续列,而实际数据是字符串列(符号的连续性(你还应该删除 .sum((,因为它是完全多余的。

重写您应用的函数:

 def filter_short_words(text):
    return "".join([for w in text.split() if len(w) > 3])

这行得通。

最新更新