Python 如何从特定列中包含特定字符串(多个)的数据框中删除行?
我一直在尝试创建多个数据帧来创建多个字符串,但我不能删除超过2个字符串,唯一的问题是我希望删除多个字符串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。当布尔掩码应
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)]