pandas字符串操作
时间: 2025-07-01 21:01:19 浏览: 17
在 Pandas 中,字符串操作是数据处理中非常常见且重要的部分。Pandas 提供了丰富的字符串处理功能,主要通过 `str` 访问器实现对 Series 或 DataFrame 中字符串数据的操作。
### 常见的字符串操作包括:
#### 1. 字符串大小写转换
可以使用 `.str.lower()`、`.str.upper()` 等方法进行大小写转换。
```python
import pandas as pd
s = pd.Series(['Hello', 'WORLD', 'pandas'])
s_lower = s.str.lower()
s_upper = s.str.upper()
```
#### 2. 字符串长度获取
通过 `.str.len()` 可以获取每个字符串的长度。
```python
s_lengths = s.str.len()
```
#### 3. 字符串替换
使用 `.str.replace()` 方法可以替换字符串中的特定内容。
```python
s_replaced = s.str.replace('pandas', 'Python')
```
#### 4. 字符串分割
通过 `.str.split()` 方法可以按照指定分隔符将字符串拆分成列表。
```python
s_split = s.str.split(',')
```
#### 5. 子字符串提取
可以使用 `.str.slice()` 或 `.str.extract()` 来提取子字符串。
```python
s_slice = s.str.slice(0, 3)
```
#### 6. 判断字符串是否包含某子串
使用 `.str.contains()` 方法可以判断某个子字符串是否存在。
```python
contains_pandas = s.str.contains('pandas')
```
#### 7. 正则表达式匹配
支持正则表达式操作,例如 `.str.match()` 和 `.str.extract()`。
```python
# 使用正则表达式提取数字
s_numbers = pd.Series(['abc123', 'def456', 'ghi789'])
numbers_extracted = s_numbers.str.extract(r'(\d+)')
```
#### 8. 字符串拼接
可以通过 `+` 运算符或 `.str.cat()` 方法拼接字符串。
```python
s_concatenated = s.str.cat([' - added text'] * len(s))
```
#### 9. 字符串去空格
使用 `.str.strip()`、`.str.lstrip()`、`.str.rstrip()` 可以去除前后空格。
```python
s_stripped = pd.Series([' leading', 'trailing ', ' both ']).str.strip()
```
#### 10. 多条件筛选
结合布尔索引和字符串操作,可以进行复杂的筛选。
```python
filtered = s[s.str.startswith('He')]
```
---
### 示例代码:清洗并分析文本数据
假设有一组城市名称数据,需要将其标准化为统一格式,并提取某些信息:
```python
cities = pd.Series([' New York ', 'LONDON', 'paris', 'Berlin'])
# 去除空格并转为小写
cleaned_cities = cities.str.strip().str.lower()
# 首字母大写
capitalized = cleaned_cities.str.capitalize()
# 检查是否包含 'on'
contains_on = cleaned_cities.str.contains('on')
print("Cleaned Cities:", cleaned_cities.tolist())
print("Capitalized:", capitalized.tolist())
print("Contains 'on':", contains_on.tolist())
```
---
### 字符串操作注意事项:
- 在处理缺失值时,字符串操作会自动跳过 `NaN` 值,避免报错。
- 如果输入数据不是字符串类型,Pandas 会尝试隐式转换为字符串进行处理。
- 对于性能要求较高的场景,建议使用向量化操作而非循环逐行处理。
---
阅读全文
相关推荐


















