使用 str.contains() 过滤数据框,但有一个例外



我正在使用str.contains('DE')时尝试过滤掉数据框列'PRODUCT'中的行。DE范围从DE001DE999

如何过滤掉DE998DE999?我一直在尝试这段代码,但我似乎找不到一种方法来删除DE998DE999而无需在另一行上手动执行此操作。

我正在使用df2[df2['PRODUCT'].str.contains("DE")].任何人都可以为此建议代码或更有效的方法吗?谢谢你的回答。对不起,还是新手程序员。

您可以创建 2 个掩码:一个测试前 2 个字符,另一个测试整个字符串。对于第二个条件,我们可以用~来表示否定条件。然后将 2 个布尔掩码与&运算符组合在一起。

mask1 = df2['PRODUCT'].str[:2] == 'DE'
mask2 = ~df2['PRODUCT'].isin(['DE998', 'DE999'])
res = df2[mask1 & mask2]

相关内容

最新更新