pandas 字符串操作

1.字符串拆分split():

split经常和strip一起使用于修剪空白符

2.字符串拼接使用 ‘+’

有个更符合Python的字符串拼接方法是使用join()

3,判断是否是子字符串,可以使用in或find()或index(),find与index的区别是,find如果找不到字符串会返回-1,index则会抛出异常错误。

in

find()

index()

4.计算子字符串出现的次数count()

5.替换某个子字符串replace()

python内置字符串方法:

(图片来源:截图于 利用python进行数据分析 Wes McKinney 著)

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 会尝试隐式转换为字符串进行处理。 - 对于性能要求较高的场景,建议使用向量化操作而非循环逐行处理。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值