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
na_sentinel: int, default -1
|
---|---|
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自定義前綴
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Pandas數據類型之category的用法
- Python機器學習三大件之二pandas
- Python Pandas學習之Pandas數據結構詳解
- pandas如何將表中的字符串轉成數值型
- Python Pandas 中的數據結構詳解