本篇博文主要介绍pandas中几个常用的字符串处理的函数。
原数据如下:
import pandas as pd
import numpy as np
import re
data = {"Beryl":"Beryl@google.com", "Tom":"Tom@gmail.com",
"Lily":"Lily@gmail.com", "Mew":np.nan}
data = pd.Series(data)
data
- data.isnull()是否为空
data.isnull()
2. data.str.upper()字符大小写转换
data.str.upper()
3. data.str.split()拆分
#split方法返回一个列表类型的序列
data.str.split("@")
#切分后的列表中的元素可以通过get方法或者[]方法进行读取
data.str.split("@").str.get(1)
data.str.split("@").str[1]
#使用expand可以将这种返回展开成一个数据表
data.str.split("@",expand=True)
4. data.str.contains()判断内容
data.str.contains("gmail")
pattern = r"([A-Z0-9]+)@([A-Z0-9]+)\.([A-Z]{2,4})"
#使用re.contains将正则表达式应用到每个元素上
data.str.contains(pattern, flags=re.IGNORECASE)
5. data.str.match()判断内容
pattern = r"([A-Z0-9]+)@([A-Z0-9]+)\.([A-Z]{2,4})"
#使用re.match将正则表达式应用到每个元素上
data.str.match(pattern, flags=re.IGNORECASE)
match和contains的区别是是否严格匹配,match严格基于re.match,而contains基于re.search
7.data.str.findall()判断内容
pattern = r"([A-Z0-9]+)@([A-Z0-9]+)\.([A-Z]{2,4})"
#找出字符串中所有的模式/正则表达式匹配项,以列表返回,参数flags用于编译pattern时指定匹配模式,当参数值为re.IGNORECASE时,表示忽略大小写的搜索替换
data.str.findall(pattern, flags=re.IGNORECASE)