使用正则表达式子集熊猫数据框

时间:2019-08-07 18:21:13

标签: python python-3.x pandas

我有一个熊猫数据框,看起来像:

>>> df
      product   desc
0        ABCD  desc1
1   ABCD1,XYZ  desc2
2      ABCD1H  desc3
3       ABCD1  desc4
4  ABCD1H,LMN  desc5

我想过滤出包含产品ABCD1ABCD1 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,我不希望这样。

1 个答案:

答案 0 :(得分:2)

使用正则表达式“ \ b”是断字:

df[df['product'].str.contains(r'ABCD1\b')]

输出:

     product   desc
1  ABCD1,XYZ  desc2
3      ABCD1  desc4