我用二进制变量来表示分类变量,建立了一个模型。我正在尝试使用我在研究环境中对生产数据使用的相同的binning和recodes。我使用pyodc查询和拉取具有与开发数据相同元素的实时数据,然后将其重新编码为二进制变量。我希望在开发数据中保持相同的名称,以便能够重用所有旧代码。当我开发这个程序时,我使用label编码器将字符串更改为数字,然后使用类似下面的代码来生成二进制变量。这在生产数据上证明是困难的,因为类别的数量是高度可变的。如何保持一致?在
le = preprocessing.LabelEncoder()
le.fit(df.NAME_VKORG)
df["NAME_VKORG_Auto"] = le.transform(df.NAME_VKORG)
le.fit(df.NAME_VTWEG)
df["NAME_VTWEG_Auto"] = le.transform(df.NAME_VTWEG)
le.fit(df.NAME_LGMNG)
df["NAME_LGMNG_Auto"] = le.transform(df.NAME_LGMNG)
le.fit(df.NAME_POSNR)
df["NAME_POSNR_Auto"] = le.transform(df.NAME_POSNR)
le.fit(df.NAME_WERKS)
df["NAME_WERKS_Auto"] = le.transform(df.NAME_WERKS)
le.fit(df.NAME_LGORT)
df["NAME_LGORT_Auto"] = le.transform(df.NAME_LGORT)
le.fit(df.NAME_CODE)
df["NAME_CODE_Auto"] = le.transform(df.NAME_CODE)
le.fit(df.NAME_VSTEL)
df["NAME_VSTEL_Auto"] = le.transform(df.NAME_VSTEL)
le.fit(df.NAME_LPRIO)
df["NAME_LPRIO_Auto"] = le.transform(df.NAME_LPRIO)
df.loc[:,"NAME_LGMNG_1"] = np.where(df["NAME_LGMNG_Auto"] == 1,1,0)
df.loc[:,"NAME_LGMNG_2"] = np.where(df["NAME_LGMNG_Auto"] == 2,1,0)
df.loc[:,"NAME_LGMNG_3"] = np.where(df["NAME_LGMNG_Auto"] == 3,1,0)
df.loc[:,"NAME_LGMNG_4"] = np.where(df["NAME_LGMNG_Auto"] == 4,1,0)
#Should be noted there are many more of the above, just used some for
examples
目前没有回答
相关问题 更多 >
编程相关推荐