pandas:get_dummies()與pd.factorize()的用法及區別說明

1.get_dummies()

pandas.get_dummies(data, prefix=None, prefix_sep=’_’, dummy_na=False, columns=None,sparse=False, drop_first=False):Convert categorical variable into dummy/indicator variables

>>> import pandas as pd
>>> s = pd.Series(list('abca'))
>>> pd.get_dummies(s)
   a  b  c
0  1  0  0
1  0  1  0
2  0  0  1
3  1  0  0

2.pd.factorize()

pandas.factorize(values, sort=False, order=None, na_sentinel=-1,size_hint=None):Encode input values as an enumerated type or categorical variable

Series.factorize(sort=False, na_sentinel=-1):Encode the object as an enumerated type or categorical variable

Pandas有一個方法叫做factorize(),它可以創建一些數字,來表示類別變量,對每一個類別映射一個ID,這種映射最後隻生成一個特征,不像dummy那樣生成多個特征。

Parameters:

sort : boolean, default False

Sort by values

na_sentinel: int, default -1

Value to mark “not found”

Returns:

labels : the indexer to the original array

uniques : the unique Index

labels:對應的編碼array

uniques:需要編碼的類型

補充:pandas.get_dummies 的使用及含義

get_dummies 是利用pandas實現one hot encode的方式

get_dummies參數如下:

pandas.get_dummies(data,prefix = None,prefix_sep =’_’,dummy_na = False,columns = None,sparse = False,drop_first = False,dtype = None )

data : array-like,Series或DataFrame

prefix :string,字符串列表或字符串dict,默認為None,

用於追加DataFrame列名的字符串。在DataFrame上調用get_dummies時,傳遞一個長度等於列數的列表。或者,前綴 可以是將列名稱映射到前綴的字典。

prefix_sep : string,默認為’_’

如果附加前綴,分隔符/分隔符要使用。或者傳遞與前綴一樣的列表或字典。

dummy_na : bool,默認為False

如果忽略False NaN,則添加一列以指示NaN。

columns : 類似列表,默認為無

要編碼的DataFrame中的列名稱。如果列是None,那麼所有與列 對象或類別 D型細胞將被轉換。

sparse : bool,默認為False

偽編碼列是否應由SparseArray(True)或常規NumPy數組(False)支持。

drop_first : bool,默認為False

是否通過刪除第一級別從k分類級別獲得k-1個假人。

版本0.18.0中的新功能。

dtype: D型,默認np.uint8

新列的數據類型。隻允許一個dtype。

版本0.23.0中的新功能。

實例

函數實例

prefix自定義前綴

prefix

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: