pandas.str.contains()是pandas库中的一个字符串方法,用于检查一个字符串是否包含另一个子字符串。下面将提供该函数的详细作用与使用方法的完整攻略。
1. 语法
pandas.str.contains(pat, case=True, flags=0, na=None, regex=True)
2. 参数
-
pat:要查找的子字符串或正则表达式。
-
case:是否区分大小写,默认为True,即表示区分大小写。
-
flags:正则表达式可选参数,可以指定正则表达式特性。
-
na:表示要替换成NaN的字符串。
-
regex:是否使用正则表达式,默认为True,即表示使用正则表达式。
3. 返回值
返回一个布尔值,表示字符串是否包含子字符串。
4. 示例
示例1:是否包含指定子字符串
import pandas as pd
# 构造数据
data = {"name": ["Alice", "Bob", "Cathy", "David", "Eva"],
"age": [25, 19, 35, 47, 22],
"city": ["Shanghai", "New York", "Beijing", "Hong Kong", "Tokyo"]}
# 创建DataFrame对象
df = pd.DataFrame(data)
# 判断city列是否包含"Y"字符
df['has_Y'] = df['city'].str.contains("Y")
# 输出结果
print(df)
输出结果:
name age city has_Y
0 Alice 25 Shanghai False
1 Bob 19 New York True
2 Cathy 35 Beijing False
3 David 47 Hong Kong True
4 Eva 22 Tokyo False
从结果可以看出,has_Y列表示city是否包含“Y”字符,如果包含则为True,否则为False。
示例2:使用正则表达式
import pandas as pd
# 构造数据
data = {"name": ["Alice", "Bob", "Cathy", "David", "Eva"],
"age": [25, 19, 35, 47, 22],
"email": ["alice@gmail.com", "bob@qq.com", "cathy@163.com", "david@hotmail.com", "eva@outlook.com"]}
# 创建DataFrame对象
df = pd.DataFrame(data)
# 判断email列是否包含qq或163
df['has_qq_163'] = df['email'].str.contains("qq|163")
# 输出结果
print(df)
输出结果:
name age email has_qq_163
0 Alice 25 alice@gmail.com False
1 Bob 19 bob@qq.com True
2 Cathy 35 cathy@163.com True
3 David 47 david@hotmail.com False
4 Eva 22 eva@outlook.com False
从结果可以看出,has_qq_163列表示email是否包含qq或163,如果包含则为True,否则为False。
5. 总结
pandas.str.contains()是pandas库中的一个字符串方法,用于检查一个字符串是否包含另一个子字符串。通过以上攻略,您已经会使用该函数了。