str.contains: 在Python中查找子字符串

一、str.contains是什么

str.contains是Python中一个字符串处理的方法,它可以在一个字符串中查找一个子字符串,如果该子字符串存在于原字符串中,则返回True,否则返回False。

使用方法:

Syntax: Series.str.contains(pat, case=True, flags=0, na=nan, regex=True)

参数:

pat: 要查找的字符串

case: 是否区分大小写,默认为True(即区分大小写)

flags: 正则表达式的标记

na: 缺失值(NaN)的表示形式

regex: 是否使用正则表达式,默认为True(即使用正则表达式)

二、str.contains的用途

str.contains可以在文本处理中非常有用。下面简单介绍其主要用途。

1. 查找字符串

str.contains可以用来查找特定字符串是否存在于另一个字符串中。例如:

import pandas as pd

# 创建一个Series
s = pd.Series(['apple', 'pear', 'orange', 'banana'])
# 查找是否包含apple
s.str.contains('apple')

输出结果:

0 True

1 False

2 False

3 False

dtype: bool

可以看到,该Series中的第一个元素包含了字符串“apple”,因此输出结果为True。

2. 替换字符串

str.contains还可以用来替换字符串。例如,我们可以使用它来将一个字符串中的所有“-”替换为“_”:

import pandas as pd

# 创建一个Series
s = pd.Series(['apple-2019', 'pear-2020', 'orange-2021', 'banana-2022'])
# 将所有'-'替换为'_'
s.str.replace('-', '_')

输出结果:

0 apple_2019

1 pear_2020

2 orange_2021

3 banana_2022

dtype: object

3. 构造新的Series

str.contains还可以用于构造新的Series。例如,我们可以使用它来构造一个表示每个字符串中是否包含“at”的Series:

import pandas as pd

# 创建一个Series
s = pd.Series(['cat', 'dog', 'rat', 'bat'])
# 构造一个新的Series,表示每个字符串是否包含'at'
has_at = s.str.contains('at')
print(has_at)

输出结果:

0 True

1 False

2 True

3 True

dtype: bool

三、str.contains的应用案例

1. 分析电子邮件列表

假设我们有一个电子邮件列表,其中包含每封电子邮件的主题、发件人和收件人。我们想要找出所有与“Python”相关的邮件。我们可以使用str.contains方法来查找包含字符串“Python”的主题或正文的电子邮件。具体方法如下:

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'subject': ['Python request', 'Java request', 'Python error', 'Python success'],
    'sender': ['Tom', 'Alex', 'Tom', 'Tom'],
    'recipient': ['John', 'Tom', 'John', 'John']
})
# 提取主题、发件人和收件人包含'Python'的邮件
python_emails = df[df['subject'].str.contains('Python') | 
                    df['sender'].str.contains('Python') | 
                    df['recipient'].str.contains('Python')]
print(python_emails)

输出结果:

subject sender recipient

0 Python request Tom John

2 Python error Tom John

3 Python success Tom John

通过str.contains,我们成功找到了所有与“Python”相关的邮件。

2. 解析网页内容

假设我们要从一个网页中抽取所有的URL链接。我们可以先使用Python中的requests模块从网页中获取HTML代码,然后使用str.contains方法筛选出所有的URL链接。具体方法如下:

import requests
import pandas as pd
import re

# 获取网页HTML代码
url = 'https://www.baidu.com'
response = requests.get(url)
html = response.text

# 使用正则表达式匹配所有的URL链接
pattern = r'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+'
urls = pd.Series(re.findall(pattern, html))
# 筛选出所有以'http'或'https'开头的URL链接
http_urls = urls[urls.str.contains('^https?')]
print(http_urls)

输出结果:

0 https://www.baidu.com/more/

1 https://www.baidu.com/cache/sethelp/help.html

2 https://www.baidu.com/more/suggestion.html

3 https://voice.baidu.com/act/newpneumonia

4 https://www.baidu.com/duty/

5 https://github.com/WhiteTrefoil/python_note

dtype: object

通过str.contains,我们成功找到了所有以’http’或’https’开头的URL链接。

总结

通过本文,我们了解了str.contains的用法和作用。str.contains是Python中一个方便实用的字符串处理工具,可以在文本处理中帮助我们快速地查找、替换和提取字符串。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/200313.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-05 14:04
下一篇 2024-12-05 14:04

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29

发表回复

登录后才能评论