如何使用正则表达式筛选DataFrame中符合列条目条件的行?
使用正则表达式筛选DataFrame中包含特定内容的行
我来帮你搞定这个DataFrame筛选的问题~要找出Screen列里包含(OOC)的所有行,你可以用pandas自带的str.contains()方法,它原生支持正则表达式匹配,完全适配你的需求。
正确代码示例
# 正则模式:注意括号在正则里是特殊字符,需要用反斜杠转义 dfnew = df[df['Screen'].str.contains(r'\(OOC\)', regex=True)]
如果只是单纯匹配字符串(OOC),不需要复杂的正则逻辑,也可以关闭正则模式,这样就不用转义括号了:
dfnew = df[df['Screen'].str.contains('(OOC)', regex=False)]
为什么你之前的方法没奏效?
你尝试的df['Screen'].filter(regex=r'OOC', axis=0)用错了工具:filter()在pandas里主要是用来筛选列或索引的,没办法直接针对行的内容做匹配,所以达不到你想要的效果。
最终预期结果
运行上面的代码后,你会得到如下筛选后的DataFrame:
| Name | Screen | Placeholder |
|---|---|---|
| Bill | GHRF (OOC) | text |
| Sue | IRMS/CIR (OOC) | text |
| John | GHRF ISOFORMS IRMS CIR (OOC) | text |
内容的提问来源于stack exchange,提问作者T. Kelly
相关产品推荐
相关产品推荐

