小编典典

将`pandas.get_dummies`转换为新数据的简单方法?

python

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

现在,我有一个新的观察值,我想遍历我的模型。显然,我无法使用pandas.get_dummies(new_data)它,因为它不包含所有类,并且不会创建相同的指标矩阵。有什么好方法吗?


阅读 145

收藏
2020-12-20

共1个答案

小编典典

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

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
2020-12-20