pandas:get_dummies()與pd.factorize()的用法及區(qū)別說明
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(),它可以創(chuàng)建一些數(shù)字,來表示類別變量,對每一個類別映射一個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:對應(yīng)的編碼array
uniques:需要編碼的類型
補(bǔ)充:pandas.get_dummies 的使用及含義
get_dummies 是利用pandas實(shí)現(xiàn)one hot encode的方式
get_dummies參數(shù)如下:
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,默認(rèn)為None,
用于追加DataFrame列名的字符串。在DataFrame上調(diào)用get_dummies時,傳遞一個長度等于列數(shù)的列表?;蛘?,前綴 可以是將列名稱映射到前綴的字典。
prefix_sep
: string,默認(rèn)為'_'
如果附加前綴,分隔符/分隔符要使用?;蛘邆鬟f與前綴一樣的列表或字典。
dummy_na
: bool,默認(rèn)為False
如果忽略False NaN,則添加一列以指示NaN。
columns
: 類似列表,默認(rèn)為無
要編碼的DataFrame中的列名稱。如果列是None,那么所有與列 對象或類別 D型細(xì)胞將被轉(zhuǎn)換。
sparse
: bool,默認(rèn)為False
偽編碼列是否應(yīng)由SparseArray(True)或常規(guī)NumPy數(shù)組(False)支持。
drop_first
: bool,默認(rèn)為False
是否通過刪除第一級別從k分類級別獲得k-1個假人。
版本0.18.0中的新功能。
dtype
: D型,默認(rèn)np.uint8
新列的數(shù)據(jù)類型。只允許一個dtype。
版本0.23.0中的新功能。
實(shí)例
prefix自定義前綴
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python和perl實(shí)現(xiàn)批量對目錄下電子書文件重命名的代碼分享
這篇文章主要介紹了Python和perl實(shí)現(xiàn)批量對目錄下電子書文件重命名的代碼分享,本文同時給出了Python和perl兩種語言的實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-11-11在Python中利用Into包整潔地進(jìn)行數(shù)據(jù)遷移的教程
這篇文章主要介紹了在Python中如何利用Into包整潔地進(jìn)行數(shù)據(jù)遷移,在數(shù)據(jù)格式的任意兩個格式之間高效地遷移數(shù)據(jù),需要的朋友可以參考下2015-03-03Python中的Socket 與 ScoketServer 通信及遇到問題解決方法
Socket有一個緩沖區(qū),緩沖區(qū)是一個流,先進(jìn)先出,發(fā)送和取出的可自定義大小的,如果取出的數(shù)據(jù)未取完緩沖區(qū),則可能存在數(shù)據(jù)怠慢。本文通過實(shí)例代碼給大家介紹Python中的Socket 與 ScoketServer 通信及遇到問題解決方法 ,需要的朋友參考下吧2019-04-04python中tf.boolean_mask()函數(shù)的使用方法詳解
這篇文章主要介紹了python中tf.boolean_mask()函數(shù)的使用方法詳解,?tf.boolean_mask()?函數(shù)的作用是通過布爾值對指定的列的元素進(jìn)行過濾,需要的朋友可以參考下2023-11-11pd.read_csv讀取文件路徑出現(xiàn)的問題解決
本文主要介紹了pd.read_csv讀取文件路徑出現(xiàn)的問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06