详解pandas.str.contains()(检测字符串包含)函数使用方法

您所在的位置:网站首页 vba匹配字符串中的某几个字符 详解pandas.str.contains()(检测字符串包含)函数使用方法

详解pandas.str.contains()(检测字符串包含)函数使用方法

#详解pandas.str.contains()(检测字符串包含)函数使用方法| 来源: 网络整理| 查看: 265

pandas.str.contains()函数是pandas库中的一个字符串匹配函数,用于在Series和DataFrame对象中通过正则表达式匹配来查找和筛选符合条件的字符串。该函数的详细用法和示例如下:

语法

pandas.str.contains(pat, case=True, flags=0, na=None, regex=True)

参数

pat: 字符串或正则表达式,用于查找的模式。

case: bool类型,默认是True,表示是否区分大小写。

flags: 用于re.compile()编译正则表达式的标志。

na: 用于替换缺失值的表示。

regex: bool类型,默认是True,表示字符串是否用正则表达式来匹配。

示例1

假设有如下的DataFrame对象:

import pandas as pd data = {'id': [1, 2, 3, 4, 5], 'name': ['张三', '李四', '王五', '赵六', '钱七'], 'age': [20, 25, 22, 28, 35], 'address': ['山东省青岛市', '山西省太原市', '广东省广州市', '江苏省南京市', '河南省郑州市']} df = pd.DataFrame(data) print(df) # 输出报表: id name age address 0 1 张三 20 山东省青岛市 1 2 李四 25 山西省太原市 2 3 王五 22 广东省广州市 3 4 赵六 28 江苏省南京市 4 5 钱七 35 河南省郑州市

现在要筛选出所有地址中含有“省”的行,可以使用pandas.str.contains(),代码如下:

address_contains = df['address'].str.contains('省', regex=True) print(df[address_contains]) # 输出结果: id name age address 0 1 张三 20 山东省青岛市 1 2 李四 25 山西省太原市 2 3 王五 22 广东省广州市 3 4 赵六 28 江苏省南京市 4 5 钱七 35 河南省郑州市

上述代码中,address_contains变量是一个bool类型的Series对象,其中每个元素表示对应行的地址是否包含“省”。而pandas.DataFrame的[]操作可以根据Series对象进行筛选,从而得到满足条件的行。

示例2

现在有一个包含多个url地址的Series对象,要筛选出所以以“.com”结尾的URL,代码如下:

urls = pd.Series(["http://www.pythonjishu.com", "http://www.pythonjishu.com/data-science/pandas/", "https://github.com/pandas-dev/pandas"]) contains_string = ".com$" only_com = urls.str.contains(contains_string) print(urls[only_com]) # 输出结果: 0 https://www.pythonjishu.com 1 http://www.pythonjishu.com/data-science/pandas/ dtype: object

上述代码中,使用$表示正则表达式匹配字符串结尾的位置。最终得到只包含“.com”后缀URL的Series对象。

这两个示例展示了pandas.str.contains()函数的应用场景,可以帮助我们快速筛选和匹配符合条件的信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解pandas.str.contains()(检测字符串包含)函数使用方法 - Python技术站



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3