從各種管道蒐集資料的過程中,因為資料來源的不同,其中使用的「單位」或「格式」就可能有所不同,像是幣別、重量、日期或容量等,當進行資料合併或整合時,如果沒注意就會發生資料「單位」或「格式」不一致的問題。
- Pandas單位換算處理
- Pandas日期格式處理
- Pandas字串格式處理
一、Pandas單位換算處理
假設,現在有一個衣服尺碼的資料集,如下範例:
import pandas as pd df = pd.read_csv('dataset.csv') print(df)
執行結果
一般來說,Height身高欄位通常都會使用「公分」為單位來計算,而以上執行結果的第10、13筆資料,很明顯可能在資料蒐集的過程中,取得了以「公尺」為單位的資料。
這就是在使用Pandas套件進行資料清理時,需要注意的單位問題,這時候,就可以透過Pandas套件的loc[]語法篩選出Height身高欄位小於100的資料,並且乘以100換算成公分,如下範例:
import pandas as pd df = pd.read_csv('dataset.csv') meter_data = df.loc[df['Height'] < 100, 'Height'] #找出異常單位資料 centimeter_data = meter_data*100 #換算成公分 df.loc[df['Height'] < 100, 'Height'] = centimeter_data #將異常資料設定為公分資料 print(df)
執行結果
可以使用assert陳述式來驗證Height身高欄位都大於等於100公分,如下範例:
assert df['Height'].min() >= 100
二、Pandas日期格式處理
import pandas as pd df = pd.read_csv('kindle_reviews.csv') df.head(10)
截取部分執行結果
其中的reviewTime評論日期欄位包含了多個不同的格式資料,而要使用Pandas套件進行日期格式的處理,可以先將欄位轉型為DateTime,如下範例:
import pandas as pd df = pd.read_csv('kindle_reviews.csv') df['reviewTime'] = pd.to_datetime(df['reviewTime']) print(df)
這時候,在轉型的過程中,如果遇到Pandas套件無法解析的日期格式,就會發生錯誤,如下:
ParserError: month must be in 1..12: 31-15-17
解決的方法,就是設定以下關鍵字參數:
- format - 想要的日期格式。
- infer_datetime_format-基於format關鍵字參數鎖定義的日期格式來解析。
- errors - 將無法解析的日期格式設定為NaT(遺漏值)。
如下範例:
import pandas as pd df = pd.read_csv('kindle_reviews.csv') df['reviewTime'] = pd.to_datetime(df['reviewTime'], format='%Y-%m-%d', infer_datetime_format=True, errors='coerce')
截取部分執行結果
三、Pandas字串格式處理
字串可以說是資料分析中,最常見的資料型態,同樣也可能因為資料來源的不同,而在整合資料時發生格式或長度等不一致的問題。
假設有一個手機價格的資料集,如下範例:
import pandas as pd df = pd.read_csv('dataset.csv') print(df)
執行結果
在價格欄位可以看到,金額字串的表示格式不一致,利用Pandas套件的「str」字串方法(Method),即可輕鬆的進行處理,如下範例:
import pandas as pd df = pd.read_csv('dataset.csv') df['Price'] = df['Price'].str.replace('NT', '') #將NT替換成空白 print(df)
執行結果
四、小結
想要有一個好的分析結果,在資料清理時,別忘了檢查資料的單位及格式是否一致化,本文利用Pandas套件對於單位換算、日期及格式的處理情境,讓大家瞭解其中的資料清理方式,降低後續發生分析錯誤的機會。
本文是筆者Mike在DataCamp平台上所學到的Pandas套件資料清理技巧,加以應用和大家分享。DataCamp平台上有非常多與資料科學、分析有關的教學,包含資料視覺化、清理、機器學習等,並且有專家帶領你完成資料分析專案,大家有興趣的話,可以加入DataCamp平台一起學習唷。
如果喜歡我的文章,別忘了在下面訂閱本網站,以及幫我按五下Like(使用Google或Facebook帳號免費註冊),支持我創作教學文章,回饋由LikeCoin基金會出資,完全不會花到錢,感謝大家。
有想要看的教學內容嗎?歡迎利用以下的Google表單讓我知道,將有機會成為教學文章,分享給大家😊
Python網頁爬蟲推薦課程
Pandas資料分析教學
- [Pandas教學]解密Pandas套件清理類別資料(Categorical Data)的方法
- [Pandas教學]3個實用的Pandas套件清理重複資料教學
- [Pandas教學]善用Pandas套件幫你清理資料範圍異常的資料
- [Pandas教學]教你用Pandas套件清理資料中的常見資料型態問題
- [Pandas教學]使用Pandas套件將資料集拆分成多個CSV檔案資料應用
- [Pandas教學]3個Pandas套件比較CSV檔案資料之間的差異秘訣
- [Pandas教學]利用Pandas套件的to_html方法在網頁快速顯示資料分析結果
- [Pandas教學]4個必學的Pandas套件處理遺漏值(Missing Value)資料方法
- [Pandas教學]有效利用Pandas套件的pipe方法打造資料處理流程管道
- [Pandas教學]3個優化Pandas套件讀取大型CSV檔案資料的技巧
- [Pandas教學]一定要學會的Pandas套件讀寫Google Sheets試算表資料秘訣
- [Pandas教學]客製化Pandas DataFrame樣式提升資料可讀性的實用方法
- [Pandas教學]3個Pandas套件合併多個CSV檔案資料的實用技巧
- Pandas教學]看完這篇就懂Pandas套件如何即時讀取API的回應資料
- [Pandas教學]快速掌握Pandas套件讀寫SQLite資料庫的重要方法
- [Pandas教學]輕鬆入門3個常見的Pandas套件排序資料方式
- [Pandas教學]有效利用Pandas套件篩選資料的應用技巧
- [Pandas教學]善用Pandas套件的Groupby與Aggregate方法提升資料解讀效率
- [Pandas教學]使用Pandas套件實作資料清理的必備觀念(上)
- [Pandas教學]使用Pandas套件實作資料清理的必備觀念(下)
- Visual Studio Code漂亮印出Pandas DataFrame資料的實用方法
- [Pandas教學]資料視覺化必懂的Pandas套件繪製Matplotlib分析圖表實戰
- [Pandas教學]5個實用的Pandas讀取Excel檔案資料技巧
- 解析Python網頁爬蟲如何有效整合Pandas套件提升資料處理效率
- [Pandas教學]掌握Pandas DataFrame讀取網頁表格的實作技巧
- [Pandas教學]資料分析必懂的Pandas DataFrame處理雙維度資料方法
- [Pandas教學]資料分析必懂的Pandas Series處理單維度資料方法
留言
張貼留言