App下載

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

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

在pandas使用的過(guò)程中我們會(huì)發(fā)現(xiàn)有兩個(gè)函數(shù)的功能有很多相似之處。它們就是get_dummies()和factorize(),它們功能上都是對(duì)分類(lèi)變量進(jìn)行操作。那么get_dummies()和factorize()有什么區(qū)別呢?接下來(lái)的這篇文章告訴你。

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有一個(gè)方法叫做factorize(),它可以創(chuàng)建一些數(shù)字,來(lái)表示類(lèi)別變量,對(duì)每一個(gè)類(lèi)別映射一個(gè)ID,這種映射最后只生成一個(gè)特征,不像dummy那樣生成多個(gè)特征。

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:對(duì)應(yīng)的編碼array

uniques:需要編碼的類(lèi)型

補(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í),傳遞一個(gè)長(zhǎng)度等于列數(shù)的列表。或者,前綴 可以是將列名稱(chēng)映射到前綴的字典。

prefix_sep : string,默認(rèn)為'_'

如果附加前綴,分隔符/分隔符要使用?;蛘邆鬟f與前綴一樣的列表或字典。

dummy_na : bool,默認(rèn)為False

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

columns : 類(lèi)似列表,默認(rèn)為無(wú)

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

sparse : bool,默認(rèn)為False

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

drop_first : bool,默認(rèn)為False

是否通過(guò)刪除第一級(jí)別從k分類(lèi)級(jí)別獲得k-1個(gè)假人。

版本0.18.0中的新功能。

dtype: D型,默認(rèn)np.uint8

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

版本0.23.0中的新功能。

實(shí)例

函數(shù)實(shí)例

prefix自定義前綴

prefix自定義前綴

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


0 人點(diǎn)贊