在Python中进行因子化

我记得在使用R语言时,我使用了.factor(我认为它们是带有层次的因子),但在Python中我不知道如何操作。

我曾经使用过get_dummies,但当训练数据集中有测试集中没有的值时,会出现问题,从而生成的列数超过了机器学习算法所能接受的数量。

我需要转换以下列:

train.head(5)    Id  MSSubClass  MSZoning     1      60         RL     2      53         RR     3      49         RL     4      60         RL     5      95         RR     6      16         RR     6      16         R1

我需要将train.MSZoning转换成如下形式:

MSZoning    1    2    1    1    2    2    3      

谢谢。


回答:

你可以使用pd.Categorical。以下是一个最小可复现的示例

import pandas as pd data = [[1, 60, 'RL'], [2, 53, 'RR'], [3, 49, 'RL'], [4, 60, 'RL'], [5, 95, 'RR']] df = pd.DataFrame(data, columns = ['Id', 'MSSubClass', 'MSZoning']) df['MSZoning_factor'] = pd.Categorical(df.MSZoning).codes + 1df#   Id  MSSubClass MSZoning  MSZoning_factor#0   1          60       RL                1#1   2          53       RR                2#2   3          49       RL                1#3   4          60       RL                1#4   5          95       RR                2

或者使用pd.factorize

df['MSZoning_factor'] = pd.factorize(df.MSZoning)[0] + 1

结果相同。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注