如果句子中有重复的单词,如何删除行
How to remove row if there are repeated words in the sentence
我有一个列表
top = ['GME', 'MVIS', 'TSLA', 'AMC']
我有一个数据集
dt ... text
0 2021-03-19 20:59:49+06 ... I only need TSLA TSLA TSLA TSLA to hit 20 eod to make up for a...
1 2021-03-19 20:59:51+06 ... Oh this isn’t good
2 2021-03-19 20:59:51+06 ... lads why is my account covered in more GME ...
3 2021-03-19 20:59:51+06 ... I'm tempted to drop my last 800 into some TSLA...
所以我想做的是检查句子是否在列表中的行中包含超过 3 个单词我想删除这一行
感谢您的帮助
让我们编写一个函数来确定在给定句子中是否有超过 3 个来自列表“top”的单词:
def check_words(sentence,top):
words = sentence.split()
count = 0
for word in words :
if word in top :
count+=1
return(count>3)
如果句子包含列表中的单词超过 3 个,则您要创建一个列 True/False。让我们使用 pandas 数据帧结构:
dataframe['Contains_3+_words'] = dataframe.apply(lambda r : check_words(r.text,top), axis=1)
然后我们只保留列表中没有包含 3 个以上单词的句子的行:
dataframe = dataframe[dataframe['Contains_3+_words']==False]]
此外,您可以删除我们创建的列:
dataframe.drop(['Contains_3+_words'], axis=1, inplace=True)
我有一个列表
top = ['GME', 'MVIS', 'TSLA', 'AMC']
我有一个数据集
dt ... text
0 2021-03-19 20:59:49+06 ... I only need TSLA TSLA TSLA TSLA to hit 20 eod to make up for a...
1 2021-03-19 20:59:51+06 ... Oh this isn’t good
2 2021-03-19 20:59:51+06 ... lads why is my account covered in more GME ...
3 2021-03-19 20:59:51+06 ... I'm tempted to drop my last 800 into some TSLA...
所以我想做的是检查句子是否在列表中的行中包含超过 3 个单词我想删除这一行
感谢您的帮助
让我们编写一个函数来确定在给定句子中是否有超过 3 个来自列表“top”的单词:
def check_words(sentence,top):
words = sentence.split()
count = 0
for word in words :
if word in top :
count+=1
return(count>3)
如果句子包含列表中的单词超过 3 个,则您要创建一个列 True/False。让我们使用 pandas 数据帧结构:
dataframe['Contains_3+_words'] = dataframe.apply(lambda r : check_words(r.text,top), axis=1)
然后我们只保留列表中没有包含 3 个以上单词的句子的行:
dataframe = dataframe[dataframe['Contains_3+_words']==False]]
此外,您可以删除我们创建的列:
dataframe.drop(['Contains_3+_words'], axis=1, inplace=True)