Python 以10为基数的int()的文本无效:';火腿';

Python 以10为基数的int()的文本无效:';火腿';,python,Python,当我试图将“category”列转换为int时,会显示此错误。有人能告诉我为什么会有这样的错误吗?这是代码 feature_extraction = TfidfVectorizer(min_df=1, stop_words = 'english', lowercase = "True") X_train_features = feature_extraction.fit_transform(X_train) X_test_features = feature_extracti

当我试图将“category”列转换为int时,会显示此错误。有人能告诉我为什么会有这样的错误吗?这是代码

feature_extraction = TfidfVectorizer(min_df=1, stop_words = 'english', lowercase = "True")
X_train_features = feature_extraction.fit_transform(X_train)
X_test_features = feature_extraction.transform(X_test)

#convert Y_train & Y_test values into integers
Y_train = Y_train.astype('int')
Y_test = Y_test.astype('int')

我猜这是你得到的全部例外:

ValueError:基数为10的int()的文本无效

这是由于为int()强制转换方法提供无效输入造成的。您可以通过执行以下操作来实现此目的:

#将Y列和Y列测试值转换为整数

Y\u train=Y\u train.astype('int')

Y\u test=Y\u test.astype('int')

这些方法最终使用int('ham')

输入错误,例如:

int('ham')
正确的输入示例

int('42')
枚举此类输入的一种正确方法是编写从Enum继承的类:

from enum import Enum

class Meats(Enum):
   ham = 1
   chicken = 2
   beef = 3
用法示例:

print(Meats['ham'])
# prints: Meats.ham
print(Meats['ham'].value)
# prints: 1
首先验证枚举是否具有所有可能的输入,然后将此类应用于向量,而不是astype('int')


了解有关Enum和python enumerate的更多信息

您是否希望
astype(int)
执行某种自动“火腿”->1、“鸡肉”->2、“牛肉”->3转换?从问题中根本不清楚
特征提取.fit\u转换是什么(或其他没有明确来源的函数)。请在代码示例中包含相关导入。