【问题标题】:How to remove row if there are repeated words in the sentence如果句子中有重复的单词如何删除行
【发布时间】:2021-10-03 06:08:57
【问题描述】:

我有一个清单

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 个单词我想删除这一行

感谢您的帮助

【问题讨论】:

    标签: python database dataset


    【解决方案1】:

    让我们编写一个函数来确定在给定的句子中,列表“top”中是否有超过 3 个单词:

    def check_words(sentence,top):
        words = sentence.split()
        count = 0
        for word in words :
            if word in top :
                 count+=1
        return(count>3)
    

    然后,您想创建一个 True/False 列,无论句子是否包含列表中的 3 个以上的单词。让我们使用 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)      
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      相关资源
      最近更新 更多