Pandas是Python中數據處理和分析的重要庫,不僅可以處理數值和時間序列數據,還可以處理結構化數據。Split技巧是Pandas中常用的技巧之一,它可以用來分割數據,從中提取有用信息。本文將介紹Python工程師必須掌握的Pandas Split技巧,包括字符串分割、列拆分、數據合併和組合等方面。
一、字符串分割
Pandas中的字符串分割方法可以將字符串類型的列數據按照指定的分隔符進行切割,生成新的列。對於包含多個信息的單元格,字符串分割方法可以將其中的信息拆分為獨立的列。
import pandas as pd data = {'name': ['Tom,Rick,John', 'Catherine,Steve,Chris', 'Peter,Anne,David']} df = pd.DataFrame(data) df[['name1', 'name2', 'name3']] = df['name'].str.split(',', expand=True)
上述代碼中,首先定義了一個包含若干人名的字典,並使用pd.DataFrame()方法將其轉換成DataFrame類型的數據。接着,用df[‘name’].str.split(‘,’, expand=True)方法將name列中的人名按照逗號分割,並使用expand=True參數將其拆分為三列(name1、name2和name3)。最後使用df[[‘name1’, ‘name2’, ‘name3’]] = 的方式將拆分後的列添加到DataFrame中。
二、列拆分
除了字符串分割,Pandas中的列拆分也是常用的技巧之一。當一列的信息過於冗雜或複雜時,可以使用列拆分將其拆分成多列。例如,一個包含日期和時間的單元格可以拆分成兩列,分別保存日期和時間。
import pandas as pd data = {'datetime': ['2022-01-01 08:00:00', '2022-01-01 12:30:30', '2022-01-02 09:15:45']} df = pd.DataFrame(data) df[['date', 'time']] = df['datetime'].str.split(' ', expand=True)
上述代碼中,首先定義了一個包含日期和時間信息的字典,並使用pd.DataFrame()方法將其轉換成DataFrame類型的數據。接着,用df[‘datetime’].str.split(‘ ‘, expand=True)方法將datetime列中的內容按照空格分割,並使用expand=True參數將其拆分為兩列(date和time)。最後使用df[[‘date’, ‘time’]] = 的方式將拆分後的列添加到DataFrame中。
三、數據合併和組合
當處理多個數據集時,需要使用數據合併和組合技巧。Pandas提供了多種數據合併和組合方法,包括concat、merge和join等。下面以concat方法為例,介紹如何合併兩個具有相同列名的DataFrame。
import pandas as pd df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}) df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'], 'B': ['B4', 'B5', 'B6', 'B7'], 'C': ['C4', 'C5', 'C6', 'C7'], 'D': ['D4', 'D5', 'D6', 'D7']}) frames = [df1, df2] result = pd.concat(frames)
上述代碼中,首先定義了兩個不同的DataFrame(df1和df2),並使用pd.concat()方法將它們合併成一個DataFrame(result)。對於具有相同列名的DataFrame,pd.concat()方法默認按照行方向進行拼接。當然,如果需要按照列方向進行拼接,可以使用axis參數指定。
在介紹完Pandas Split技巧的相關方面,建議大家深入地去了解Pandas的相關API,掌握更多實用的數據處理技巧。同時,我們也要注重數據預處理和數據質量的保證,這是數據分析和建模的重要基礎。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/200865.html