使用str.contains檢查字元串是否包含指定內容

一、str.contains()方法說明

str.contains()方法是Python pandas庫中的一種常用方法,主要用於檢查字元串中是否包含某個指定的內容,返回值是布爾類型。

該方法的語法格式如下所示:

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

其中參數說明如下:

  • pat:為要匹配的字元串。
  • case:True or False,默認為True,表示區分大小寫。
  • flags:更改匹配方式,例如:忽略大小寫、多行匹配等。
  • na:指定替換缺失值的值。
  • regex:正則表達式模式。

二、實例演示

我們可以通過以下示例演示,如何使用str.contains()方法進行字元串匹配。

示例代碼如下所示:

import pandas as pd

data = {'names': ['Amy', 'Bob', 'Cathy', 'Don', 'Eve'],
        'location': ['California', 'New York', 'Utah', 'Texas', 'Florida']}
df = pd.DataFrame(data)

# 檢查名字列是否包含指定內容 'o'
df['name_contains_o'] = df['names'].str.contains('o')

print(df)

輸出結果如下所示:

    names    location name_contains_o
0     Amy  California           True
1     Bob    New York           False
2   Cathy        Utah           True
3     Don       Texas          False
4     Eve     Florida          False

上面的示例中,我們首先創建了一個包含名字和地址的DataFrame,然後使用str.contains()方法檢查名字列是否包含字母’o’,並添加了一個結果列。結果表明,對於所有包含字母’o’的名字,結果列中都顯示為True,反之則為False。

三、使用正則表達式進行匹配

在使用str.contains()方法時,如果將regex參數設置為True,則可以使用正則表達式進行字元串匹配。

例如,我們想找到名字中以’b’或’c’開頭的人,可以使用以下正則表達式進行匹配:

import pandas as pd

data = {'names': ['Amy', 'Bob', 'Cathy', 'Don', 'Eve'],
        'location': ['California', 'New York', 'Utah', 'Texas', 'Florida']}
df = pd.DataFrame(data)

# 使用正則表達式進行匹配
df['name_starts_with_b_or_c'] = df['names'].str.contains('^[bc]')

print(df)

輸出結果如下:

    names    location name_starts_with_b_or_c
0     Amy  California                    False
1     Bob    New York                     True
2   Cathy        Utah                     True
3     Don       Texas                    False
4     Eve     Florida                    False

上面的示例中,我們以’^[bc]’正則表達式為條件,檢查包含字母’b’或’c’開頭的名字,並添加結果列。結果表明,只有Bob和Cathy的名字以’b’或’c’開頭,因此結果列中的值為True。

四、case參數的使用

在使用str.contains()方法時,case參數默認為True,表示是否區分大小寫。如果我們想不區分大小寫,則可以將case參數設置為False。

例如,我們想要找到含有字母’a’的名字,而不關心其大小寫,可以使用以下示例代碼:

import pandas as pd

data = {'names': ['Amy', 'Bob', 'Cathy', 'Don', 'Eve'],
        'location': ['California', 'New York', 'Utah', 'Texas', 'Florida']}
df = pd.DataFrame(data)

# case參數為False,不區分大小寫
df['contains_a_case_insensitive'] = df['names'].str.contains('a', case=False)

print(df)

輸出結果如下所示:

    names    location contains_a_case_insensitive
0     Amy  California                        True
1     Bob    New York                       False
2   Cathy        Utah                        True
3     Don       Texas                       False
4     Eve     Florida                       False

上面的示例中,我們以字母’a’為條件進行匹配,並將case參數設置為False,表示不區分大小寫。結果表明,所有包含字母’a’的名字都被識別出來了。

五、flags參數的使用

在使用str.contains()方法時,如果想更改匹配方式,比如忽略大小寫、多行匹配等,可以使用flags參數進行更改。下面是一個使用flags參數的示例代碼:

import pandas as pd

data = {'text': ['The quick brown fox jumps over the lazy dog.',
                 'THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.',
                 'The quack brown fox jumps over the lazy dog.']}
df = pd.DataFrame(data)

# 將'multiline'標誌傳遞給flags參數
df['contains_dog'] = df['text'].str.contains('dog', flags=re.MULTILINE)

print(df)

輸出結果如下所示:

                                                     text  contains_dog
0     The quick brown fox jumps over the lazy dog.           True
1     THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.          True
2     The quack brown fox jumps over the lazy dog.          True

上面的示例中,我們將字元串中的dog匹配標誌設置為multiline,則即使在多行文本中也會識別出dog。

六、na參數的使用

在使用str.contains()方法時,如果字元串中存在缺失值,我們可以使用na參數指定替換缺失值的值。

下面是一個使用na參數的示例代碼:

import pandas as pd
import numpy as np

data = {'text': ['The quick brown fox jumps over the lazy dog.',
                 np.nan,
                 'The quack brown fox jumps over the lazy dog.']}
df = pd.DataFrame(data)

# 將na參數設置為False
df['contains_dog'] = df['text'].str.contains('dog', na=False)

print(df)

輸出結果如下所示:

                                                        text contains_dog
0     The quick brown fox jumps over the lazy dog.          True
1     NaN                                                     False
2     The quack brown fox jumps over the lazy dog.          True

上面的示例中,我們將na參數設置為False,表示將缺失值看作不包含任何內容,並對其進行了替換。

七、總結

本文主要介紹了Python pandas庫中的str.contains()方法,該方法用於檢查字元串中是否包含某個指定的內容,支持正則表達式匹配,可以使用case、flags和na等參數更改匹配方式和替換缺失值。該方法在數據清洗和處理文本數據等場景中非常實用。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/182276.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-24 06:19
下一篇 2024-11-24 06:19

相關推薦

  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python中將字元串轉化為浮點數

    本文將介紹在Python中將字元串轉化為浮點數的常用方法。在介紹方法之前,我們先來思考一下這個問題應該如何解決。 一、eval函數 在Python中,最簡單、最常用的將字元串轉化為…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • Python學習筆記:去除字元串最後一個字元的方法

    本文將從多個方面詳細闡述如何通過Python去除字元串最後一個字元,包括使用切片、pop()、刪除、替換等方法來實現。 一、字元串切片 在Python中,可以通過字元串切片的方式來…

    編程 2025-04-29
  • Python七年級內容用法介紹

    本文將從多個方面對Python七年級內容進行詳細闡述。 一、安裝Python 要使用Python進行編程,首先需要在計算機上安裝Python。Python可以在官網上免費下載。下載…

    編程 2025-04-29
  • Python如何將字元串1234變成數字1234

    Python作為一種廣泛使用的編程語言,對於數字和字元串的處理提供了很多便捷的方式。如何將字元串「1234」轉化成數字「1234」呢?下面將從多個方面詳細闡述Python如何將字元…

    編程 2025-04-29
  • Python int轉二進位字元串

    本文將從以下幾個方面對Python中將int類型轉換為二進位字元串進行詳細闡述: 一、int類型和二進位字元串的定義 在Python中,int類型表示整數,二進位字元串則是由0和1…

    編程 2025-04-29
  • 用title和capitalize美觀處理Python字元串

    在Python中,字元串是最常用的數據類型之一。對字元串的美觀處理是我們在實際開發中經常需要的任務之一。Python內置了一些方法,如title和capitalize,可以幫助我們…

    編程 2025-04-28
  • Python 提取字元串中的電話號碼

    Python 是一種高級的、面向對象的編程語言,它具有簡單易學、開發迅速、代碼簡潔等特點,廣泛應用於 Web 開發、數據科學、人工智慧等領域。在 Python 中,提取字元串中的電…

    編程 2025-04-28
  • Python如何列印帶雙引號的字元串

    Python作為一種廣泛使用的編程語言,在日常開發中經常需要列印帶雙引號的字元串。那麼,如何列印帶雙引號的字元串呢? 一、使用轉義字元 在Python中,我們可以通過使用轉義字元\…

    編程 2025-04-28

發表回復

登錄後才能評論