我正在使用str.contains('DE')
时尝试过滤掉数据框列'PRODUCT'
中的行。DE
范围从DE001
到DE999
。
如何过滤掉DE998
和DE999
?我一直在尝试这段代码,但我似乎找不到一种方法来删除DE998
和DE999
而无需在另一行上手动执行此操作。
我正在使用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]