
- Python Pandas 教程
- Python Pandas - 首頁
- Python Pandas - 簡介
- Python Pandas - 環境搭建
- Python Pandas - 基礎
- Python Pandas - 資料結構簡介
- Python Pandas - 索引物件
- Python Pandas - Panel
- Python Pandas - 基本功能
- Python Pandas - 索引與資料選擇
- Python Pandas - Series
- Python Pandas - Series
- Python Pandas - Series 物件切片
- Python Pandas - Series 物件的屬性
- Python Pandas - Series 物件的算術運算
- Python Pandas - 將 Series 轉換為其他物件
- Python Pandas - DataFrame
- Python Pandas - DataFrame
- Python Pandas - 訪問 DataFrame
- Python Pandas - DataFrame 物件切片
- Python Pandas - 修改 DataFrame
- Python Pandas - 從 DataFrame 中刪除行
- Python Pandas - DataFrame 的算術運算
- Python Pandas - I/O 工具
- Python Pandas - I/O 工具
- Python Pandas - 使用 CSV 格式
- Python Pandas - 讀取和寫入 JSON 檔案
- Python Pandas - 從 Excel 檔案讀取資料
- Python Pandas - 將資料寫入 Excel 檔案
- Python Pandas - 使用 HTML 資料
- Python Pandas - 剪貼簿
- Python Pandas - 使用 HDF5 格式
- Python Pandas - 與 SQL 的比較
- Python Pandas - 資料處理
- Python Pandas - 排序
- Python Pandas - 重新索引
- Python Pandas - 迭代
- Python Pandas - 連線
- Python Pandas - 統計函式
- Python Pandas - 描述性統計
- Python Pandas - 使用文字資料
- Python Pandas - 函式應用
- Python Pandas - 選項和自定義
- Python Pandas - 視窗函式
- Python Pandas - 聚合
- Python Pandas - 合併/連線
- Python Pandas - 多級索引
- Python Pandas - 多級索引基礎
- Python Pandas - 使用多級索引進行索引
- Python Pandas - 使用多級索引的高階重新索引
- Python Pandas - 重新命名多級索引標籤
- Python Pandas - 對多級索引進行排序
- Python Pandas - 二元運算
- Python Pandas - 二元比較運算
- Python Pandas - 布林索引
- Python Pandas - 布林掩碼
- Python Pandas - 資料重塑和透視
- Python Pandas - 透視
- Python Pandas - 堆疊和取消堆疊
- Python Pandas - 熔化
- Python Pandas - 計算虛擬變數
- Python Pandas - 分類資料
- Python Pandas - 分類資料
- Python Pandas - 分類資料的排序和分類
- Python Pandas - 分類資料的比較
- Python Pandas - 處理缺失資料
- Python Pandas - 缺失資料
- Python Pandas - 填充缺失資料
- Python Pandas - 缺失值的插值
- Python Pandas - 刪除缺失資料
- Python Pandas - 使用缺失資料的計算
- Python Pandas - 處理重複項
- Python Pandas - 重複資料
- Python Pandas - 計數和檢索唯一元素
- Python Pandas - 重複標籤
- Python Pandas - 分組和聚合
- Python Pandas - GroupBy
- Python Pandas - 時間序列資料
- Python Pandas - 日期功能
- Python Pandas - Timedelta
- Python Pandas - 稀疏資料結構
- Python Pandas - 稀疏資料
- Python Pandas - 視覺化
- Python Pandas - 視覺化
- Python Pandas - 其他概念
- Python Pandas - 注意事項和陷阱
- Python Pandas 有用資源
- Python Pandas - 快速指南
- Python Pandas - 有用資源
- Python Pandas - 討論
Pandas Series.str.extract() 方法
Pandas 中的Series.str.extract() 方法允許您從 Series 中的每個字串元素或 DataFrame 中的列中提取與指定正則表示式模式匹配的子字串。此方法對於基於正則表示式模式將字串的特定部分提取到 DataFrame 中的單獨列中特別有用。
透過使用正則表示式模式,您可以輕鬆控制提取字串的哪些部分。此方法從正則表示式模式的第一個匹配項中提取組。然後,提取的組可以作為 DataFrame 中的列返回,從而可以輕鬆處理複雜的文字資料。
語法
以下是 Pandas Series.str.extract() 方法的語法:
Series.str.extract(pat, flags=0, expand=True)
引數
Series.str.extract() 方法接受以下引數:
pat − 表示具有捕獲組的正則表示式模式的字串。
flags − 整數,預設為 0(無標誌)。可以從re 模組(例如re.IGNORECASE)使用標誌來修改正則表示式匹配。
expand − 布林值,預設為 True。如果為 True,則返回一個 DataFrame,每個捕獲組對應一列。如果為 False,則如果只有一個捕獲組,則返回 Series/Index,如果有多個捕獲組,則返回 DataFrame。
返回值
Series.str.extract() 方法返回 DataFrame、Series 或 Index。結果將對每個主題字串有一行,對每個組有一列。正則表示式模式中的捕獲組名稱將用於列名;否則,將使用捕獲組編號。即使找不到匹配項,每個結果列的 dtype 始終為 object。如果expand=False 並且模式只有一個捕獲組,則返回 Series 或 Index。
示例 1
在此示例中,我們透過基於正則表示式模式提取 Series 中字串的特定部分來演示 Series.str.extract() 方法的用法。
在這裡,我們使用具有命名捕獲組的正則表示式模式從 Series 中每個字串中提取字母后跟數字。
import pandas as pd import numpy as np # Create a Series of strings s = pd.Series(['Python1', 'Tutorialspoint2', 'caT3', np.nan]) # Extract letter followed by a digit result = s.str.extract(r'(?P<letter>[a-zA-Z])(?P<digit>\d)') print("Input Series:") print(s) print("\nDataFrame after calling str.extract():") print(result)
執行上述程式碼後,將產生以下輸出:
Input Series: 0 Python1 1 Tutorialspoint2 2 caT3 3 NaN dtype: object DataFrame after calling str.extract(): letter digit 0 n 1 1 t 2 2 T 3 3 NaN NaN
示例 2
在此示例中,我們演示瞭如何使用Series.str.extract() 方法基於具有多個捕獲組的正則表示式模式提取 Series 中字串的特定部分。
import pandas as pd # Create a Series of strings s = pd.Series(['Order123', 'Invoice456', 'Receipt789']) # Extract 'Order', 'Invoice', or 'Receipt' followed by digits result = s.str.extract(r'(?P<type>[A-Za-z]+)(?P<number>\d+)') print("Input Series:") print(s) print("\nDataFrame after calling str.extract():") print(result)
以下是上述程式碼的輸出:
Input Series: 0 Order123 1 Invoice456 2 Receipt789 dtype: object DataFrame after calling str.extract(): type number 0 Order 123 1 Invoice 456 2 Receipt 789
示例 3
在此示例中,我們演示瞭如何使用Series.str.extract() 方法從一系列電子郵件地址中提取電子郵件使用者名稱。
import pandas as pd # Create a Series of email addresses s = pd.Series(['user1@example.com', 'info@tutorialspoint.com', 'contact@website.org']) # Extract usernames from email addresses result = s.str.extract(r'(?P<username>^[^@]+)') print("Input Series:") print(s) print("\nDataFrame after calling str.extract()):") print(result)
以下是上述程式碼的輸出:
Input Series: 0 user1@example.com 1 info@tutorialspoint.com 2 contact@website.org dtype: object DataFrame after calling str.extract(): username 0 user1 1 info 2 contact