更改列类别时出现问题 - 无法将字符串转换为浮点数

问题描述 投票:0回答:1

我想使用以下代码将列类型更改为类别:

df["Geography"] = df["Geography"].astype("category")

然后,使用随机森林算法如下:

X = df.drop('target', axis = 1)
y = df['target']
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.15, random_state = 123,stratify=y )

forest = RandomForestClassifier(n_estimators = 500, random_state = 1)

以及拟合算法时:

forest = RandomForestClassifier(n_estimators = 500, random_state = 1)

出现如下错误:

could not convert string to float: 'Spain'

西班牙是地理列中的一行,我将其转换为分类值。为什么我会出错?

pandas random-forest
1个回答
0
投票

您的特征类型已更改为“类别”,但类别可以是国家名称,因此如果您需要类别作为数字,您可以使用分类索引:

df["Geography"] = pd.CategoricalIndex(df["Geography"])
© www.soinside.com 2019 - 2024. All rights reserved.