pandas.get_dummies用法 (One-Hot Encoding)

Pandas.get_dummies 用法简单介绍

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

pandas 中的 get_dummies 方法主要用于对类别型特征做 One-Hot 编码(独热编码)。

1 主要参数介绍:

1.1 data

data : array-like, Series, or DataFrame

传入的 data 为需要进行 One-Hot 编码的数据,包括 array-like, Series, or DataFrame 等类型数据。

对于类别型(category)特征,使用get_dummies(),结果如下:

>>> import pandas as pd
>>> df = pd.DataFrame({'gender':['m','f','m','f','m','f','n']})
>>> df_onehot = pd.get_dummies(df)
>>> df_onehot

Out :
在这里插入图片描述
若DataFrame中有数值型特征(columns),数值型column则保留原始值,如下例的 id 列。

>>> import pandas as pd
>>> data_df = pd.DataFrame({'id':[1,2,3,4,5,6,7],'gender':['m','f','m','f','m','f','n']})
>>> df_onehot = pd.get_dummies(data_df)
>>> df_onehot 

Out :
在这里插入图片描述
上面两个简单的例子不难发现,经过 get_dummies() 编码后新生成的列,列名为 “原列名_类别”,例如 " gender_f "。当然,新列的命名方式也是可以自定义的。如下,设置 prefix 即可。

1.2 prefix

prefix: string, list of strings, or dict of strings, default None
  用于附加DataFrame列名的字符串。在DataFrame上调用get_dummies时,传递长度等于列数的列表。或者,前缀可以是将列名映射到前缀的字典。

>>> import pandas as pd
>>> data_df = pd.DataFrame({'id':[1,2,3,4,5,6,7],'gender':['m','f','m','f','m','f','n']})
>>> df_onehot = pd.get_dummies(data_df, prefix ='gen')
>>> df_onehot 

Out :
在这里插入图片描述
当然,不只是前缀可以做更改,分隔符也可以自己设置,如下,设置 prefix_sep 即可。

1.3 prefix_sep

prefix_sep: string, default ‘_’
  如果附加前缀,则使用分隔符/分隔符。或作为前缀传递列表或字典。

>>> import pandas as pd
>>> data_df = pd.DataFrame({'id':[1,2,3,4,5,6,7],'gender':['m','f','m','f','m','f','n']})
>>> df_onehot = pd.get_dummies(data_df, prefix ='gen', prefix_sep = '/')
>>> df_onehot 

Out:
在这里插入图片描述

2 其他参数(Parameters):

dummy_na: bool, default False
  如果忽略False NaNs,则添加一列来指示NaNs。

columns: list-like, default None
  要编码的DataFrame中的列名称。 如果列为None,则将转换具有object或category dtype的所有列。

sparse: bool, default False
  是否应该使用SparseArray (True)或常规NumPy数组(False)来支持用dummy编码的列。

drop_first: bool, default False
  Whether to get k-1 dummies out of k categorical levels by removing the first level.
  New in version 0.18.0.

dtype: dtype, default np.uint8
  Data type for new columns. Only a single dtype is allowed.
  New in version 0.23.0.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值