当 Pandas 列中不存在某些类别时获取假人[重复]
Posted
技术标签:
【中文标题】当 Pandas 列中不存在某些类别时获取假人[重复]【英文标题】:Get dummies when some categories are not present in a pandas column [duplicate] 【发布时间】:2018-07-09 17:42:57 【问题描述】:假设我有一个如下所示的 pandas 列
类型 类型1 type2 type3
现在我将采取如下假人:type_dummies = pd.get_dummies(["Type"], prefix="type")
然后将其与主 DataFrame 连接后,生成的 df 将如下所示:
df.drop(['Type'], axis=1, inplace=True)
df = df.join(type_dummies)
df.head()
type_type1 type_type2 type_type3
1 0 0
0 1 0
0 0 1
但是,如果在我的训练集中有另一个类别 type4
在 Type
列中。那么我将如何使用get_dummies()
方法尽可能多地生成假人。也就是说,在这种情况下,我想生成 4 个虚拟变量,尽管所需列中只有 3 个类别?
【问题讨论】:
嗯,是的,之前看到了。但是,@Wen 给出的答案对我来说并不清楚。所以我还是问了它,并找到了一个很好的简单答案。无论如何,感谢您的注意。 【参考方案1】:你可以使用categroy
数据类型
df.Type=df.Type.astype('category', categories=['type1','type2','type3','type4'])
df
Out[200]:
Type
0 type1
1 type2
2 type3
pd.get_dummies(df["Type"], prefix="type")
Out[201]:
type_type1 type_type2 type_type3 type_type4
0 1 0 0 0
1 0 1 0 0
2 0 0 1 0
【讨论】:
哇。那成功了。谢谢.. @AshanPriyadarshana Yw~ 快乐编码以上是关于当 Pandas 列中不存在某些类别时获取假人[重复]的主要内容,如果未能解决你的问题,请参考以下文章