一、基礎概念
Pandas是Python中最常用的工具之一,用於數據分析和數據清洗。在進行數據清洗時,常常會用到正則表達式。正則表達式是一種通過字符序列來匹配字符模式的方法。在Pandas中,正則表達式是一個重要的工具,可以用來從數據中提取必要的信息,比如說匹配和整理數據框中的字符串,過濾數據等。
在Pandas中,主要用到的函數有str.contains、str.match、str.findall、str.replace等。其中str.contains返回布爾值,指示某個字符串是否包含匹配模式;str.match返回布爾值,指示字符串的起始是否匹配給定的模式。str.findall返回的是所有匹配成功的組成的列表。str.replace則返回一個新字符串,將字符串中給定的正則表達式匹配成的字符串替換為另一個字符串。
二、使用場景
正則表達式在Pandas中可用於提取、替換和過濾數據。在實際應用中,大量的數據需要清理,例如去除空數據、替換數據、統計並排序數據、進行數據分析或給數據加標記等。通過使用正則表達式,可以大大方便這些工作的實現。
例如,我們可以使用str.replace函數將數據中的某些無效字符替換成空值或者其他特定的值。使用startswith函數檢查字符串是否以指定的字符或字符串開頭,使用endswith函數檢查字符串是否以指定的字符或字符串結尾。如果我們需要提取數據框中的一部分數據,我們可以使用str.extract函數,它允許我們提取一個匹配正則表達式的字符串,並將其放入另一個新列中。
三、代碼示例
import pandas as pd # 定義數據框 data = {'name': ['Amy', 'Tom', 'Jessie', 'Mary', 'Jack'], 'age': [20, 22, 28, 30, 32], 'city': ['Beijing', 'Shanghai', 'Shenzhen', 'Beijing', 'Shanghai'], 'gender': ['female', 'male', 'female', 'female', 'male']} df = pd.DataFrame(data) # 使用str.contains函數過濾數據 new_df = df[df['city'].str.contains('Shanghai')] print(new_df) # 使用str.match和startswith函數過濾數據 new_df = df[df['name'].str.startswith('J')] print(new_df) # 使用str.extract提取數據並創建新列 df['postcode'] = df['city'].str.extract('\((.*?)\)') print(df) # 使用str.replace函數替換數據 df['gender'] = df['gender'].str.replace('male', 'M') df['gender'] = df['gender'].str.replace('female', 'F') print(df)
四、總結
在數據清洗和分析中,正則表達式是一個非常重要的工具。在Pandas中,我們可以使用字符串函數str配合正則表達式快速實現數據的過濾、提取和替換等操作。同時,通過加深對正則表達式的認識,我們還可以更好地利用Pandas中的其他函數,加快數據清洗的效率,提高數據分析的精度。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/219698.html