Python實現資料預處理 離散值處理

2021-10-06 06:04:43 字數 4113 閱讀 1827

1.pandas進行特徵離散處理

標籤處理通常會把字元型的標籤轉換成數值型的

特徵處理

對於特徵來說,一般可以做乙個對映的字典

還可以轉換成編碼

還原資料初始狀態)}

2.使用sklearn進行離散值處理的方式如下:

①.標籤編碼(labelencoder)

資料還原回去可以用inverse_transform :

class_le.inverse_transform(df[

'class label'

])

②.特徵向量化(dictvectorizer)使用 dictvectorizer將得到特徵的字典

對所有的資料都做了對映

from sklearn.feature_extraction import dictvectorizer

dvec = dictvectorizer(sparse=

false

)x = dvec.fit_transform(feature.transpose(

).to_dict(

).values())

x#輸出結果

array([[

0.,1

.,0.

,10.1,0

.,1.

,0.]

,[0.

,0.,

1.,13.5,1

.,0.

,0.]

,[1.

,0.,

0.,15.3,0

.,0.

,1.]

])

可以呼叫 get_feature_names 來返回新的列的名字,其中0和1就代表是不是這個屬性。

③.獨熱編碼(onehotencoder)onehotencoder 必須使用整數作為輸入,所以得先預處理一下

x#輸出結果

array([[

0.,1

.,0.

],[0

.,0.

,1.]

,[1.

,0.,

0.]]

)pandas虛擬變數pandas庫中同樣有類似的操作,使用get_dummies也可以得到相應的特徵

對整個df使用get_dummies 將會得到新的列:

pd.get_dummies(df)

23 資料預處理之資料離散化處理

pandas.cut x,bins,right true,labels x 資料 bins 離散化的資料,或者切分的區間 labels 離散化後各個類別的標籤 right 是否包含區間右邊的值 等寬分箱 df age bin pd.cut df age new 5,labels range 5 不加...

模板 資料預處理技巧 離散化

問題引入 輸入n個資料,統計每個數出現的次數。資料大小為小於等於1e9的正整數,n小於等於1e5 很顯然,如果直接開乙個1e9的陣列來記錄每個元素出現的次數,那肯定會mle,因此要把我們輸入的資料進行離散化操作。即把無限空間中有限的個體對映到有限的空間中去,以此提高演算法的時空效率。通俗的說,離散化...

Python資料預處理

1.匯入資料檔案 excel,csv,資料庫檔案等 df read table file,names 列名1,列名2,sep encoding file是檔案路徑,names預設為檔案的第一行為列名,sep為分隔符,預設為空,表示預設匯入為一列 encoding設定檔案編碼,匯入中文時,需設定utf...