Python 如何根据另一个csv文件中的关键字提取csv文件中的句子,并将其从主csv文件中删除

Python 如何根据另一个csv文件中的关键字提取csv文件中的句子,并将其从主csv文件中删除,python,string,pandas,csv,Python,String,Pandas,Csv,我有2个csv文件,其中一个包含如下所示的句子 你好吗 我想死 我在家 我上班时睡着了 他名声不好 是我去找他的 在家好好睡一觉 另一个csv文件包含频率如下所示的单词 词频 和500 你是450 我300 有250个 你的240 睡200 工作150 家100 死亡50 我正试图根据频率在300到100之间的单词将句子提取到一个新的csv文件中,并在从主csv文件中提取后删除该句子,因为有时在搜索新关键字或单词时会出现重复,这是我设法构建的代码,但没有给出我想要的输出: import sys

我有2个csv文件,其中一个包含如下所示的句子

你好吗

我想死

我在家

我上班时睡着了

他名声不好

是我去找他的

在家好好睡一觉

另一个csv文件包含频率如下所示的单词

词频

和500

你是450

我300

有250个

你的240

睡200

工作150

家100

死亡50

我正试图根据频率在300到100之间的单词将句子提取到一个新的csv文件中,并在从主csv文件中提取后删除该句子,因为有时在搜索新关键字或单词时会出现重复,这是我设法构建的代码,但没有给出我想要的输出:

import sys
import pandas as pd
import re
import string
if len(sys.argv) == 1:
    print("please provide a CSV file to analys")
else:
    fileinput = sys.argv[1]
    dic = sys.argv[2]

wdata = pd.read_csv(fileinput, nrows=0).columns[0]
skip = int(wdata.count(' ') == 0)
wdata = pd.read_csv(fileinput, names=['sentences'], skiprows=skip)

data = wdata['sentences'].str.replace('[^\w\s]', ' ')
keywords=pd.read_csv(dic)
keywords=keywords.loc[keywords['freq'].between(100, 300, inclusive=False), 'word']
df1 = data[data['sentences'].str.split(expand=True).isin(keywords).any(axis=1)]
#deleted rows by keywords
df2 = data[~data['sentences'].str.split(expand=True).isin(keywords).any(axis=1)]
print(df1)


我不知道如何在提取后删除主文件中的句子,我期望的输出是这样的

我认为您需要选择关键词:

keywords=keywords.loc[keywords['freq'].between(100, 300, inclusive=False), 'word']
print (keywords)
3     have
4     your
5    sleep
6     work
Name: word, dtype: object
然后选择“通过”和“使用”


从主文件中删除这个句子怎么样?在检查关键字中的每个单词后?一个问题是,我将在一大组数据上尝试这一点,这就是为什么我在每个关键字搜索完成后需要删除部分,这样它就不会返回并从一开始就搜索整个内容,这将非常不方便,并且需要很多时间,对吗?这是可行的吗?抱歉,搜索第一个关键字后没有匹配的关键字,在我们的情况下是我,并将所有句子提取到一个新的csv文件中删除我们正在搜索的主csv文件中包含我的所有句子,然后转到下一个关键字进行搜索我现在正在检查唯一的部分是deletation@programmingfreak-您可以尝试
newdata.to_csv(“new_data.csv”,index=False,header=False)
df1 = data[data.str.split(expand=True).isin(keywords.tolist()).any(axis=1)]
print (df1)
3    I went to sleep at work
6     have a good sleep home
Name: sentences, dtype: object

#deleted rows by keywords
df2 = data[~data.str.split(expand=True).isin(keywords.tolist()).any(axis=1)]
print (df2)
0                  how are you
1                I want to die
2                   I was home
4      he has a bad reputation
5    it was me who went to him
Name: sentences, dtype: object