在進行python資料分析的時候,首先要進行資料預處理。
有時候不得不處理一些非數值類別的資料,嗯, 今天要說的就是面對這些資料該如何處理。
目前了解到的大概有三種方法:
1,通過labelencoder來進行快速的轉換;
3,通過get_dummies方法來轉換。
import pandas as pd
from io import stringio
csv_data = '''a,b,c,d
1,2,3,4
5,6,,8
0,11,12,'''
df = pd.read_csv(stringio(csv_data))
print(df)
#統計為空的數目
print(df.isnull().sum())
print(df.values)
#丟棄空的
print(df.dropna())
print('after', df)
from sklearn.preprocessing import imputer
# axis=0 列 axis = 1 行
imr = imputer(missing_values='nan', strategy='mean', axis=0)
imr.fit(df) # fit 構建得到資料
imputed_data = imr.transform(df.values) #transform 將資料進行填充
print(imputed_data)
df = pd.dataframe([['green', 'm', 10.1, 'class1'],
['red', 'l', 13.5, 'class2'],
['blue', 'xl', 15.3, 'class1']])
df.columns =['color', 'size', 'price', 'classlabel']
print(df)
print(df)
## 遍歷series
for idx, label in enumerate(df['classlabel']):
print(idx, label)
#1, 利用labelencoder類快速編碼,但此時對color並不適合,
#看起來,好像是有大小的
from sklearn.preprocessing import labelencoder
class_le = labelencoder()
color_le = labelencoder()
df['classlabel'] = class_le.fit_transform(df['classlabel'].values)
#df['color'] = color_le.fit_transform(df['color'].values)
print(df)
#2, 對映字典將類標轉換為整數
import numpy as np
print('2,', df)
#3,處理1不適用的
#利用建立乙個新的虛擬特徵
from sklearn.preprocessing import onehotencoder
pf = pd.get_dummies(df[['color']])
df = pd.concat([df, pf], axis=1)
df.drop(['color'], axis=1, inplace=true)
print(df)
Python資料預處理
1.匯入資料檔案 excel,csv,資料庫檔案等 df read table file,names 列名1,列名2,sep encoding file是檔案路徑,names預設為檔案的第一行為列名,sep為分隔符,預設為空,表示預設匯入為一列 encoding設定檔案編碼,匯入中文時,需設定utf...
python資料預處理
scikit learn 提供的binarizer能夠將資料二元化 from sklearn.preprocessing import binarizer x 1,2,3,4,5 5,4,3,2,1 3,3,3,3,3 1,1,1,1,1 print before transform x binar...
python資料預處理
import pandas as pd 缺失值處理 df pd.read excel users caizhengjie desktop a.xlsx print df 直接呼叫info方法就會返回每一列的缺失值 print df.info print isnull方法判斷哪個是缺失值 print ...