我有一个熊猫数据框,看起来像:
>>> df
product desc
0 ABCD desc1
1 ABCD1,XYZ desc2
2 ABCD1H desc3
3 ABCD1 desc4
4 ABCD1H,LMN desc5
我想过滤出包含产品ABCD1
或ABCD1 followed by any other product ID
但不包含ABCD1H
的行。如何过滤出这样的行。
在上面的示例中,我希望输出为:
>>> df
product desc
1 ABCD1,XYZ desc2
3 ABCD1 desc4
这是我到目前为止尝试过的方法,但是没有用。
df2 = df.loc[df['product'].str.contains('ABCD1')]
它的结果中还包含ABCD1H
,我不希望这样。
答案 0 :(得分:2)
使用正则表达式“ \ b”是断字:
df[df['product'].str.contains(r'ABCD1\b')]
输出:
product desc
1 ABCD1,XYZ desc2
3 ABCD1 desc4