【问题标题】:str.contains doesn't find partial matchesstr.contains 找不到部分匹配项
【发布时间】:2021-05-07 21:29:01
【问题描述】:

在数据框中

df = pd.DataFrame({'colA': ['id1', 'id2', 'id3', 'id4', 'id5'],
                   'colB': ['Black cat', 'Black mouse', 'Black_A cat', 'Black cat', 'White_A mouse']})

我想找到colB 包含Black cat 的所有行。我的命令

df[df['colB'].str.contains('Black cat', na=False)]

只允许查找

colA    colB
0   id1 Black cat
3   id4 Black cat

虽然我期望这样:

    colA    colB
0   id1 Black cat
2   id3 Black_A cat
3   id4 Black cat

部分匹配有什么问题?

【问题讨论】:

    标签: pandas string contains


    【解决方案1】:

    在您的情况下,partial match 是什么? contains 用于查找精确的子字符串,因此 Black A cat 不会匹配 Black cat。如果您希望在 Blackcat 之间使用可选字符,则应在模式中指定:

    df[df['colB'].str.contains('Black.*cat', na=False)]
    #                                ^ this
    

    输出:

      colA         colB
    0  id1    Black cat
    2  id3  Black_A cat
    3  id4    Black cat
    

    【讨论】:

      猜你喜欢
      • 2019-06-05
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多