栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将以逗号分隔的字符串的pandas列转换为虚拟变量

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将以逗号分隔的字符串的pandas列转换为虚拟变量

使用str.get_dummies

df['col'].str.get_dummies(sep=',')    a   b   c   d0   1   0   0   01   1   1   1   02   1   1   0   13   0   0   0   14   0   0   1   1

编辑:更新答案以解决一些问题。

Qn 1:为什么系列方法get_dummies不接受参数prefix = …而pandas.get_dummies()却接受它

Series.str.get_dummies是一个序列级方法(顾名思义!)。我们是一个Series(或Dataframe列)中的一种热编码值,因此不需要使用前缀。另一方面,Pandas.get_dummies可以对多个列进行热编码。在这种情况下,prefix参数将用作原始列的标识符。

如果要将前缀应用于str.get_dummies,则始终可以使用Dataframe.add_prefix

df['col'].str.get_dummies(sep=',').add_prefix('col_')

问题2:如果您有不止一列,如何将假人重新合并到原始框架中?您可以使用Dataframe.concat将一个热编码列与数据框中的其余列合并。

df = pd.Dataframe({'other':['x','y','x','x','q'],'col':['a','a,b,c','a,b,d','d','c,d']})df = pd.concat([df, df['col'].str.get_dummies(sep=',')], axis = 1).drop('col', 1)  other a   b   c   d0   x   1   0   0   01   y   1   1   1   02   x   1   1   0   13   x   0   0   0   14   q   0   0   1   1


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号