例如:import numpy as npimport pandas as pddf1 = pd.DataFrame({ 'id': [1, 2, 3, 4], 'category': ['A', 'B', 'C', 'D']})df1_dummy = pd.get_dummies(df1)print(df1_dummy)然后我得到: id category_A category_B category_C category_D0 1 1 0 0 01 2 0 1 0 02 3 0 0 1 03 4 0 0 0 1但是,我有另一个 DataFrame,它看起来像:df2 = pd.DataFrame({ 'id': [1, 2, 3, 4], 'category': ['A', 'A', 'B', 'B']})df2_dummy = pd.get_dummies(df2)print(df2_dummy)我有: id category_A category_B0 1 1 01 2 1 02 3 0 13 4 0 1我的问题是,有没有什么方法可以自动生成 df2_dummy 看起来像 df1_dummy 它有列 ['category_C', 'category_D'] 并且值都是零,看起来像:df2_dummy: id category_A category_B category_C category_D0 1 1 0 0 01 2 1 0 0 02 3 0 1 0 03 4 0 1 0 0如果有人可以提供帮助,我将不胜感激!
1 回答
凤凰求蛊
TA贡献1825条经验 获得超4个赞
假设df2的类别与 相同df1,您可以“同步”它们,以便pd.get_dummies适当地处理缺失的类别:
pd.get_dummies(
pd.Categorical(df2['category'], categories=df1['category'].unique()))
A B C D
0 1 0 0 0
1 1 0 0 0
2 0 1 0 0
3 0 1 0 0
这是你要做的:
df2['category'] = pd.Categorical(
df2['category'], categories=df1['category'].unique())
pd.get_dummies(df2)
id category_A category_B category_C category_D
0 1 1 0 0 0
1 2 1 0 0 0
2 3 0 1 0 0
3 4 0 1 0 0
添加回答
举报
0/150
提交
取消