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

时间:2020-02-03 15:07:27

标签: 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'])]

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

3 个答案:

答案 0 :(得分:0)

您只需要添加loc。当布尔掩码应用于数据框/系列时,只有显式的位置标记才可以解决问题。

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

答案 1 :(得分:0)

我认为您在正确的道路上。

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

>>> 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

答案 2 :(得分:0)

试试这个方法:

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