Python 如何从特定列中包含特定字符串(多个)的数据框中删除行?

Python 如何从特定列中包含特定字符串(多个)的数据框中删除行?,python,pandas,dataframe,Python,Pandas,Dataframe,我一直在尝试创建多个数据帧来创建多个字符串,但我不能删除超过2个字符串,唯一的问题是我希望删除多个字符串 data3 = data[~data.column.str.contains("remove words")] data3 = data3[~data3.column.str.contains("remove me")] data3.count 我试过这个,但没有用 df = df[~df.column.isin(['remove words'])] 或 您只需添加loc。当布尔掩码应

我一直在尝试创建多个数据帧来创建多个字符串,但我不能删除超过2个字符串,唯一的问题是我希望删除多个字符串

data3 = data[~data.column.str.contains("remove words")]
data3 = data3[~data3.column.str.contains("remove me")]

data3.count
我试过这个,但没有用

df = df[~df.column.isin(['remove words'])]


您只需添加
loc
。当布尔掩码应用于数据帧/序列时,只有显式loc表示法才能起作用

df.loc[~df.column.isin(['remove words', 'remove me'])]

我认为你走的路是对的

让我们定义一个玩具数据框:

>>> df = pd.DataFrame([("i have a car", 2), 
    ("cows make milk", 3), 
    ("try this remove me stuff", 5), 
    ("please remove words", 51)], 
    columns=["text", "number"])
给你:

>>> words_to_avoid = ["remove me", "remove words"]
>>> df[df.text.apply(
        lambda txt: not any([word_to_avoid in txt for word_to_avoid in words_to_avoid])
    )]

    text    number
0   car       2
1   cow       3
尝试以下方法:

df2 = df1[~df1.column.str.contains('remove words|remove me', regex=True)]

请提供示例数据和预期结果。我想从df.column data=df[~df.words.str.contains(“wierd”)]data=data[~data.words.str.contains(“getout”)列中删除字符串(删除单词、删除我等)data.count words是excel工作表中要保留列
text
的值不在给定列表中的行的列,例如
[“删除单词”、“删除我”]
。是这样吗?那么您就走上了正轨,
isin()
似乎是一个解决方案。请重新表述您的问题,并包括示例数据、预期结果和错误。当我尝试此df=df[~df.text.str.contains(“getout”)]时,data=data[~data.text.str.contains(“wierd”)]data.count我没有看到对我的dfI的任何更改,我希望删除包含字符串“wierd”或“getout”的整行。我想从名为text的列中删除它。任何包含这些单词的行(“wierd”或“getout”)都将被删除。此处的“text”列是句子。索引[2]将是“我可以从列表中删除单词吗?”。如果我看到句子中的删除词,我只想删除整行。就像这句话,明白了。编辑了我的答案。您想删除
text
包含给定列表中要避免的单词之一的行,此处称为
words\u to\u avoid
。请接受答案。不客气!下次,请附上一个输入和输出示例,这比试图用简单的文字描述要好。这将使它更容易。类型为“int”的TypeError参数不适用。请接受答案并创建一个新问题。IndexingError:作为索引器提供的不可对齐的布尔序列(布尔序列和索引对象的索引不匹配)。
df2 = df1[~df1.column.str.contains('remove words|remove me', regex=True)]