dataframe列包含的句子中只有很少的三个和两个没有意义的字母词。我想在dataframe列中找到所有这些单词,然后将它们从dataframe列中删除。 df-
id text
1 happy birthday syz
2 vz
3 have a good bne weekend
我想1)查找所有长度小于3的单词。(这将返回syz,vz,bne) 2)删除这些词 (请注意,停用词已被删除,因此“ dataframe”列中现在不存在“ 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
答案 0 :(得分:1)
您将功能应用于一列单词序列,而实际数据是一列字符串(符号序列) 您还应该删除.sum(),因为它完全多余。
以以下格式重写您应用的功能:
def filter_short_words(text):
return "".join([for w in text.split() if len(w) > 3])
这有效。