str.contains 找不到部分匹配项
Posted
技术标签:
【中文标题】str.contains 找不到部分匹配项【英文标题】:str.contains doesn't find partial matches 【发布时间】: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
部分匹配有什么问题?
【问题讨论】:
【参考方案1】:在您的情况下,partial match
是什么? contains
用于查找精确的子字符串,因此 Black A cat
不会匹配 Black cat
。如果您希望在 Black
和 cat
之间使用可选字符,则应在模式中指定:
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
【讨论】:
以上是关于str.contains 找不到部分匹配项的主要内容,如果未能解决你的问题,请参考以下文章
Pandas str.contains 用于部分字符串的精确匹配