get_dummies的编码用法

本文深入讲解了One-hot编码的基本原理及其实现方法,通过pandas.get_dummies函数演示了如何将离散型特征转换为One-hot编码形式,适用于机器学习模型的预处理阶段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

one-hot encoding

one-hot的基本思想:将离散型特征的每一种取值都看成一种状态,若你的这一特征中有N个不相同的取值,那么我们就可以将该特征抽象成N种不同的状态,one-hot编码保证了每一个取值只会使得一种状态处于“激活态”,也就是说这N种状态中只有一个状态位值为1,其他状态位都是0。

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

参数说明:

data : array-like, Series, or DataFrame
输入的数据
prefix : string, list of strings, or dict of strings, default None
get_dummies转换后,列名的前缀
columns : list-like, default None
指定需要实现类别转换的列名
dummy_na : bool, default False
增加一列表示空缺值,如果False就忽略空缺值
drop_first : bool, default False
获得k中的k-1个类别值,去除第一个

1.新增列为one-hot形式

# change weekday to one-hot encoding,将weekday转换成one-hot编码
weekdaycols = ['weekday_' + str(i) for i in range(1,8)]
tmpdf = pd.get_dummies(dfoff['weekday'].replace('nan', np.nan)) ##如果是nan,则one——hot为0
tmpdf.columns = weekdaycols
dfoff[weekdaycols] = tmpdf

转换前后weekday增加列,如果值为nan,则one-hot数值全为0

2.利用prefix增加列

dummies_Cabin = pd.get_dummies(data_test['Cabin'], prefix= 'Cabin')
dummies_Embarked = pd.get_dummies(data_test['Embarked'], prefix= 'Embarked')
dummies_Sex = pd.get_dummies(data_test['Sex'], prefix= 'Sex')
dummies_Pclass = pd.get_dummies(data_test['Pclass'], prefix= 'Pclass')

df_test = pd.concat([data_test, dummies_Cabin, dummies_Embarked, dummies_Sex, dummies_Pclass], axis=1)

 

 

 

 

 

 

 

get_dummies()方法是pandas库中的一个函数,用于将分类变量转换为哑变量。它可以根据不同的需求进行使用。 引用\[1\]中的示例代码展示了如何使用get_dummies()方法来设置prefix来修改哑编码后的列。在这个示例中,我们创建了一个名为students_df的DataFrame,其中包含了学生的Id、姓名和性别。然后,我们使用get_dummies()方法对性别列进行哑编码,并通过设置prefix参数为"Column"来修改哑编码后的列名。最后,我们打印出原始的DataFrame和哑编码后的DataFrame。 引用\[2\]中的示例代码展示了如何使用get_dummies()方法来只对指定的列进行哑编码。在这个示例中,我们创建了一个名为students_df的DataFrame,其中包含了学生的Id、姓名和性别。然后,我们使用get_dummies()方法对性别列进行哑编码,但没有设置prefix参数。这样,哑编码后的列名将保持原样。最后,我们打印出原始的DataFrame和哑编码后的DataFrame。 引用\[3\]中的示例代码展示了如何使用get_dummies()方法来对DataFrame中的所有列进行哑编码。在这个示例中,我们创建了一个名为students_df的DataFrame,其中包含了学生的Id、姓名和性别。然后,我们使用get_dummies()方法对整个DataFrame进行哑编码。最后,我们打印出原始的DataFrame和哑编码后的DataFrame。 总结来说,get_dummies()方法可以根据不同的需求来对DataFrame中的列进行哑编码,可以设置prefix来修改哑编码后的列名,也可以只对指定的列进行哑编码,还可以对整个DataFrame进行哑编码。 #### 引用[.reference_title] - *1* *2* *3* [pandas get_dummies用法及代码示例](https://blog.youkuaiyun.com/weixin_44852067/article/details/122242856)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值