当 pandas 列中不存在某些类别时获取假人
Get dummies when some categories are not present in a pandas column
假设我有一个 pandas 列,如下所示
类型
类型1
type2
类型 3
现在我将采用以下假人:
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
但是如果在我的训练集中 Type
列中有另一个类别 type4
怎么办?那么我将如何使用 get_dummies()
方法来尽可能多地生成假人。也就是说,在这种情况下,我想生成 4 个虚拟变量,尽管所需列中只有 3 个类别?
您可以使用 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
假设我有一个 pandas 列,如下所示
类型
类型1
type2
类型 3
现在我将采用以下假人:
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
但是如果在我的训练集中 Type
列中有另一个类别 type4
怎么办?那么我将如何使用 get_dummies()
方法来尽可能多地生成假人。也就是说,在这种情况下,我想生成 4 个虚拟变量,尽管所需列中只有 3 个类别?
您可以使用 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