1. 程式人生 > 實用技巧 >缺失值、重複值處理

缺失值、重複值處理

缺失值處理

1.當缺失值的比例佔資料樣本的比例比較小,則可以直接刪除。

2.資料補齊

檢視缺失值

df = pd.read_excel(r'缺失值處理.xlsx')
df

每列缺失值的總數

df.isnull().sum()

列缺失值所佔的比例

#apply
df.apply(lambda x: sum(x.isnull())/len(x), axis=0)

刪除缺失值

#dropna
df.dropna(inplace=True) 
#刪除列
df.dropna(axis=1
# 設定整行或整列為空時才刪除
df.dropna(how='all')) 

暫無的替換

#1.匯入資料時直接替換 na_values
df = pd.read_excel('缺失值處理_替換值.xlsx', na_values='暫無')
df
#2.np.nan
df.replace('暫無', np.nan, inplace=True)

替換單位(eg:萬)

df['售價'].apply(lambda x:str(x).replace('萬',''))
#!!缺失值出錯=>
df['售價'].apply(lambda x:str(x).replace('萬','') if x is not np.nan else x)

計算平均值

df['售價']=df['售價'].astype(np.float)

替換缺失值

#fillna
df.fillna({'售價': df['售價'].mean()})
#mean是平均值

重複值

重複值處理

#df.drop_duplicates()
df=pd.read_excel(r'重複值處理.xlsx')
df.drop_duplicates()
#保留位置keep='first','last'
#判重 subset=['日期','售價']

重置index

#df.resetindex
df.reset_index()