使用过滤数据帧结构包含('')但有一个例外

2024-04-26 23:51:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在使用str.contains('DE')时过滤掉数据帧列'PRODUCT'中的行。DE范围从DE001DE999。你知道吗

如何过滤出DE998DE999?我一直在尝试这段代码,但似乎想不出一种方法来删除DE998DE999,而不必在另一行上手动执行。你知道吗

我正在使用df2[df2['PRODUCT'].str.contains("DE")]。有人能提出一个代码或者一个更有效的方法吗?谢谢你的回答。抱歉,还是个新手。你知道吗


Tags: 数据方法代码de手动productdf2contains
1条回答
网友
1楼 · 发布于 2024-04-26 23:51:57

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

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

res = df2[mask1 & mask2]

相关问题 更多 >