pandas - str.contains 找不到部分匹配项
问题描述
在数据框中
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
部分匹配有什么问题?
解决方案
你的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
推荐阅读
- node.js - 如何解决错误:在 nodejs 中读取 ECONNRESET
- python - Grouping values from list into buckets to keep sum of values at or below threshold
- flutter - Flutter 断言失败,但可以使用资产
- java - 我们如何将嵌套集合声明为一种类型(如 HashMap 中的 HashMap)?
- javascript - 限制 chrome 扩展中的谷歌地图 api 键
- css - 如何将元素始终放在具有变换属性的图像的顶部
- python - 如何在 sklearn.neighbors 函数中获取距离
- javascript - 在 ReactJS 中调用功能组件相关的问题
- java - 向axis1.4客户端java添加隐含soap头
- c# - 尝试在 MVC 控制器中调用 json ID 但我收到此错误“对象引用未设置为对象的实例”