正则表达式在Pandas的`str.contains()`中如何使用?
时间: 2024-12-10 11:51:06 浏览: 14
正则表达式(Regular Expressions, regex)在 Pandas 的 `str.contains()` 函数中用于检查字符串列是否包含符合特定模式的子串。这个函数非常适合进行文本搜索和数据清洗。
以下是一些基本用法:
1. **简单匹配**: 如果你想检查某列中的每个元素是否包含某个单个字符或词,你可以直接传递字符串作为参数,例如:
```python
df['column'].str.contains('pattern')
```
这会返回一个布尔系列,表明哪些行包含 'pattern'。
2. **正则表达式模式**: 使用 `re` 模块定义更复杂的模式,比如大小写不敏感、贪婪匹配、零宽断言等:
```python
import re
df['column'].str.contains(r'(pattern)', case=False) # 不区分大小写
df['column'].str.contains(r'\b(pattern)\b', flags=re.IGNORECASE) # 匹配整个单词
```
3. **`regex` 参数**: 可以通过 `regex` 参数强制 `contains()` 使用正则表达式:
```python
df['column'].str.contains(r'\d+', regex=True)
```
4. **匹配次数**: 使用 `*`, `+`, `{n}`, `{m,n}` 等量词来指定重复次数:
```python
df['column'].str.contains(r'pattern*', regex=True) # 零次或多次出现
```
5. **分组和查找**: 利用括号 (`()`) 进行分组,并可能使用 `|` (OR), `^` (开始), `$` (结束) 等元字符来构建复杂模式:
```python
df['column'].str.contains(r'(a|b)+', regex=True)
```
阅读全文