1. 程式人生 > 其它 >資料清洗之重複值與缺失值的處理

資料清洗之重複值與缺失值的處理

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))