數據處理的過程:
數據收集、數據錄入、數據清洗、數據處理、數據集成、數據管理、數據分析、提供數據服務
數據收集:通過註冊登記、問卷、面試採訪獲取數據,或者科學家勘測、測量的數據以及實驗文檔記錄,公司報表等都是
獲取數據的方式.
數據清洗: 數據清洗可以簡單分爲這幾個過程:解析、修正、標準化,合併
解析:將無結構的文本轉化爲字段和值的有結構的數據
修正:將無效的Unknown或缺失值按照實際情況來修改爲合適的值
缺失值處理規則:
1.用變量的模板替換缺失的值。
2.用變量的平均值/中位數替換缺失值
3.根據記錄的相似度替換缺失值,或根據好值的比值替換缺失值。
4.刪除有太多缺失值的記錄
標準化:將一些固定的數據,如日期,國家,地區等統一爲相同的值
合併:將多個字段合併爲一個最終的數據
模擬數據填充練習,通過用Pandas庫讀取到文件數據以後,對數據進行處理
首先,創建student.csv文件
然後用pandas讀取並輸出
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_csv('student.csv')
print(df.head(50)) #head()默認顯示5條
輸出結果如圖:
這時候我們會發現,sex和age的部分值爲空值,我們把性別列的空值填充爲男,年齡列的空值填充爲18
df1=df.fillna(value={'sex':'女','age':18}) #通過字典,填充
接着用matplotlib箱型圖來顯示,上面已經導入了庫,直接使用
df1.boxplot(flierprops={'marker':'o','markerfacecolor':'g'}) #marker代表樣式,facecolor代表顏色
plt.show() #顯示圖形
我們會發現有一些極限值200在最上方,
下面我們將年齡大於140的全部替換爲中位數,使用to_replace方法:
df2=df1.replace(to_replace=df[df['age']>140],value={'age':df['age'].median()}) #median中位數
df2.boxplot(flierprops={'marker':'o','markerfacecolor':'g'})