如何使用 sklearn 对 CSV 文件中的多列进行一次热编码?

Posted

技术标签:

【中文标题】如何使用 sklearn 对 CSV 文件中的多列进行一次热编码?【英文标题】:How to one hot encode multiple columns in CSV file using sklearn? 【发布时间】:2020-10-28 06:17:38 【问题描述】:

我的 CSV 文件中有以下代码用于对一列进行一次热编码。

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [0])], remainder='passthrough')
X = np.array(ct.fit_transform(X))

现在我想通过仅使用索引号而不是该列的名称对该 CSV 文件中的多个列进行一次热编码,我该怎么做?

【问题讨论】:

【参考方案1】:

如果我没记错的话,transformers=[] 的第三个参数是一个热编码的列索引列表。例如,如果您想对索引为 0 和 1 的列进行一次热编码,则第三行可能如下所示:

ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [0,1])], remainder='passthrough')

我发现此链接很有帮助:https://machinelearningmastery.com/columntransformer-for-numerical-and-categorical-data/

【讨论】:

以上是关于如何使用 sklearn 对 CSV 文件中的多列进行一次热编码?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 从 csv 文件中的字符串搜索中打印多列

如何按范围对csv文件中的列进行分组并使用python绘制直方图?

在python中按大小对csv文件进行多列排序

如何使用 Qt 将两个单列 csv 文件合并为一个多列 csv 文件? [关闭]

如何使用BeautifulSoup中的Python将单行中多列分隔的数据导出为.csv或.xls?

如何使用 Pandas 计算跨多列的行中的值?