首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sklearn.preprocessing.OneHotEncoder及其阅读方式

sklearn.preprocessing.OneHotEncoder及其阅读方式
EN

Stack Overflow用户
提问于 2022-03-21 09:25:31
回答 1查看 1.1K关注 0票数 1

我已经在所有的预处理数据管道中使用了一段时间的热编码。

但是,现在我遇到了一个问题,因为我正在尝试使用运行模型的烧瓶服务器来自动处理新数据。

我想要做的是搜索新数据中的特定日期、区域和类型,并在其上运行.predict。

当我搜索特定的数据点后,问题就出现了,我必须将列从对象更改为一个热编码的列。

我的问题是,我如何知道哪一列是某一特性中哪个类别的?因为经过一次热编码后,我有大约240列。

EN

回答 1

Stack Overflow用户

发布于 2022-03-21 09:32:36

IIUC,使用get_feature_names_out()

代码语言:javascript
复制
import pandas as pd
from sklearn.preprocessing import OneHotEncoder

df = pd.DataFrame({'A': [0, 1, 2], 'B': [3, 1, 0],
                   'C': [0, 2, 2], 'D': [0, 1, 1]})

ohe = OneHotEncoder()
data = ohe.fit_transform(df)
df1 = pd.DataFrame(data.toarray(), columns=ohe.get_feature_names_out(), dtype=int)

输出:

代码语言:javascript
复制
>>> df
   A  B  C  D
0  0  3  0  0
1  1  1  2  1
2  2  0  2  1


>>> df1
   A_0  A_1  A_2  B_0  B_1  B_3  C_0  C_2  D_0  D_1
0    1    0    0    0    0    1    1    0    1    0
1    0    1    0    0    1    0    0    1    0    1
2    0    0    1    1    0    0    0    1    0    1

>>> pd.Series(ohe.get_feature_names_out()).str.rsplit('_', 1).str[0]
0    A
1    A
2    A
3    B
4    B
5    B
6    C
7    C
8    D
9    D
dtype: object
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71555321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档