App下載

pandas的get_dummies()與factorize()如何使用?有什么區(qū)別

猿友 2021-07-22 13:50:17 瀏覽數(shù) (2294)
反饋

在pandas使用的過程中我們會發(fā)現(xiàn)有兩個函數(shù)的功能有很多相似之處。它們就是get_dummies()和factorize(),它們功能上都是對分類變量進行操作。那么get_dummies()和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

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實現(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,默認為None,

用于追加DataFrame列名的字符串。在DataFrame上調(diào)用get_dummies時,傳遞一個長度等于列數(shù)的列表?;蛘?,前綴 可以是將列名稱映射到前綴的字典。

prefix_sep : string,默認為'_'

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

dummy_na : bool,默認為False

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

columns : 類似列表,默認為無

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

sparse : bool,默認為False

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

drop_first : bool,默認為False

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

版本0.18.0中的新功能。

dtype: D型,默認np.uint8

新列的數(shù)據(jù)類型。只允許一個dtype。

版本0.23.0中的新功能。

實例

函數(shù)實例

prefix自定義前綴

prefix自定義前綴

以上就是get_dummies()和factorize()有什么區(qū)別的全部內(nèi)容,希望能給大家一個參考,也希望大家多多支持W3Cschool。


0 人點贊