資料清洗之重複值與缺失值的處理
阿新 • • 發佈:2021-07-06
1.重複值的處理方法:所有欄位完全相同的重複值,一般直接刪除,即只保留一個。
2.缺失值的處理方法:
缺失值佔比很高,可以刪除(超過60%)
缺失值佔比不高:使用均值,中位數,眾數填充
缺失值佔比不高:用模型擬合填充
3.使用零售電商資料進行舉例:
程式碼:
import pandas as pd # 各個欄位的含義 # # InvoiceNo:發票編碼,一般為 6 位整數,C 開頭表示退貨訂單 # StockCode:產品程式碼,一般為 5 位整數 # Description:商品名稱 # Quantity:下單數量 # UnitPrice:每單位商品價格,以英鎊表示 # InvoiceDate:下單時間 # CustomerID:顧客ID,一般為 5 位整數 # Country:顧客所在國家或地區 # 這個csv檔案的編碼格式是ISO-8859-1 online_retail_pd = pd.read_csv(r'D:\pycharm_project\電商背後的資料密碼\第二章 資料分析\online_retail.csv', encoding='ISO-8859-1') # print(online_retail_pd.info()) # print(online_retail_pd.head()) # 所有的欄位值都是一樣的話,那麼這類資料沒有參考意義 # 顯示出重複的值,keep=False保留所有的重複行 duplicated_data_index = online_retail_pd.duplicated(keep=False) # 排序,排序的好處就是我能夠很清楚的瞭解到每一個重複的值 online_retail_pd[duplicated_data_index].sort_values( ['InvoiceNo', 'StockCode', 'Description', 'Quantity', 'InvoiceDate', 'UnitPrice', 'Country', 'CustomerID']) print(len(online_retail_pd)) # inplace=True,刪除重複值,重複的值只保留一行 刪除前是541909行資料 online_retail_pd.drop_duplicates(inplace=True) # 刪除後是536641行資料 print(len(online_retail_pd))