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

Ell*_*ner 20 python pandas

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

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

JAB*_*JAB 24

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

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)
Run Code Online (Sandbox Code Playgroud)

收益:

        val     cat_a   cat_b   cat_c   cat_d
  0     1       1       0       0       0
Run Code Online (Sandbox Code Playgroud)

  • 上帝,我喜欢堆栈溢出. (4认同)
  • 你可能想要fill_value = 0. (3认同)