从`pandas.get_dummies`应用转换到新数据的简单方法?

时间:2015-02-11 22:18:11

标签: python pandas

假设我有一个数据框data,其中包含我想要转换为指标的字符串。我使用pandas.get_dummies(data)将其转换为我现在可用于构建模型的数据集。

现在我有一个新的观察,我想通过我的模型。显然我不能使用pandas.get_dummies(new_data),因为它不包含所有类,也不会生成相同的指标矩阵。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:22)

您可以从单个新观察中创建虚拟对象,然后使用原始指标矩阵中的列重新索引此框架列:

import pandas as pd
df = pd.DataFrame({'cat':['a','b','c','d'],'val':[1,2,5,10]})
df1 = pd.get_dummies(pd.DataFrame({'cat':['a'],'val':[1]}))
dummies_frame = pd.get_dummies(df)
df1.reindex(columns = dummies_frame.columns, fill_value=0)

返回:

        val     cat_a   cat_b   cat_c   cat_d
  0     1       1       0       0       0