pandas.Series.str.contains() 是一个Series对象的字符串处理方法,用于检查指定字符串是否包含于Series对象的每个元素中。其返回值是Series对象,元素为True或False,表示是否包含指定字符串。
该方法的语法如下:
Series.str.contains(pat, case=True, flags=0, na=nan, regex=True)
参数说明:
- pat: 匹配的字符串或正则表达式
- case: 是否区分大小写,缺省为True
- flags: 编译时用的正则表达式标志位,默认为0
- na: 缺失值用于替换
- regex: 是否使用正则表达式,默认为True
使用示例一:
import pandas as pd
data = {'name':['Jack', 'Tom', 'Mary', 'David'],
'age':[18, 22, 21, 19],
'email':['abc@domain.com', 'tom@domain.cn', 'mary@domain.com', 'david@domain.cn']
}
df = pd.DataFrame(data)
result = df['email'].str.contains('domain')
print(result)
输出结果为:
0 True
1 True
2 True
3 True
Name: email, dtype: bool
该示例中,我们创建了一个DataFrame对象df,其中包含了name, age和email三个列。使用df[’email’].str.contains()方法,判断Series对象中的每个元素是否包含字符串”domain”,返回一个bool型Series对象,其中都为True,指示每个元素都包含”domain”字符串。
使用示例二:
import pandas as pd
data = {'name':['Jack', 'Tom', 'Mary', 'David'],
'age':[18, 22, 21, 19],
'phone':['+1-123-456-7890', '+86-999-8888-7777', '+33-23-4567-8910', '+44-2345-6789-01']
}
df = pd.DataFrame(data)
result = df['phone'].str.contains('\+\d{1}-')
print(result)
输出结果为:
0 True
1 True
2 False
3 False
Name: phone, dtype: bool
该示例中,我们使用正则表达式’+\d{1}-‘表示匹配”+”后面只有一位数字,接着跟着”-“符号。现在我们用该正则表达式对df[‘phone’]列做匹配,用df[‘phone’].str.contains()来查找所有匹配的行。输出结果显示,第一个和第二个元素都匹配,返回True。第三个和第四个元素都不匹配,返回False。
综上所述,pandas.Series.str.contains()函数可以用来判断Series对象的元素是否包含指定字符串或正则表达式,是一种非常实用的字符串处理方法。如果你在进行数据清洗或特征选择的过程中遇到类似的需求,不妨试试这个函数。