# -*- coding: utf-8 -*-
"""created on sat sep 29 22:39:26 2018
@author: lxiao217
email:[email protected]
"""#資料預處理
#csv(comma-srpared values,以逗號為分隔符的數值)
#如果資料以csv檔案的形式儲存在硬碟上,就可以通過stringio以字串的方式從檔案中
#讀取資料,並將其轉換為dataframe的格式賦給csv_data
import pandas as pd
from io import stringio
csv_data = '''a,b,c,d
,2.0,,4.0
5.0,6.0,7.0,8.0
0.0,,12.0,'''
df = pd.read_csv(stringio(csv_data))
print(df)
print(df.isnull().sum())
#isnull()返回乙個bool型的dataframe值,有缺失值返回true,沒有返回false
#sum()方法統計缺失值個數
print(df.values)
print()
'''缺失值的處理方法'''
#將存在缺失值的特徵或樣本刪除
#缺點:會丟失有價值的資料
print(df.dropna()) #刪除包含缺失資料的行
print()
print(df.dropna(axis=1)) #刪除包含缺失資料的列
print()
print(df.dropna(thresh = 2))
print()
#缺失資料填充
#常用的差值技術之一是:均值插補
#sklearn的imputer類可以實現此方法。
'''strategy = 'mean'時,首先計算各特徵列的值,後取均值替換相應的nan.
axis=1則計算相應的行;
'''#imputer類屬於sklearn的轉換器類,用於資料轉換,常用方法為fit和transform
#fit用於對資料集中的引數進行識別並構建相應的資料補齊模型
#transform方法則使用剛構建的資料補齊模型對資料集中相應的引數的缺失值進行補齊。
from sklearn.preprocessing import imputer
imr = imputer()
imr = imr.fit(df)
imputed_data = imr.transform(df.values)
print(imputed_data)
ML Data Processing資料預處理
資料歸一化 引數 arrays list np.array matrices padas dataframes 需被分割的樣本集 options test size 在0.0和1.0之間,表示要從樣本集拆分到測試集的比例,預設為0.25 train size 在0.0和1.0之間,表示要從樣本集拆分...
Python 使用Pandas進行資料預處理
利用pandas庫中的get dummies函式對類別型特徵進行啞變數處理。get dummies語法 pandas.get dummies data,prefix none,prefix sep dummy na false,columns none,sparse false,drop first...
python資料分析與機器學習 使用者流失預警
本文針對某 遊戲使用者資料,運用python pandas matplotlib及sklearn,對初始資料進行資料清理,並結合機器學習的一些演算法,建立關於使用者流失預警的簡單模型,重點是模型評估指標,可作為入門機器學習的小案例。1.載入資料,檢視資料特徵,分析特徵。2.刪除無用特徵,處理字元型特...