Python LabelEncoder赢得';不编码字符串?

Python LabelEncoder赢得';不编码字符串?,python,pandas,scikit-learn,Python,Pandas,Scikit Learn,我正在尝试将数据的非数值列编码为数值。我正在使用 df = df.fillna('0') msk = np.random.rand(len(df)) < 0.8 df_train = df[msk] df_test = df[~msk] columns_to_encode = df.select_dtypes(exclude=[np.number]).columns encoder_dict = {col: LabelEncoder() for col in columns_to_enco

我正在尝试将数据的非数值列编码为数值。我正在使用

df = df.fillna('0')
msk = np.random.rand(len(df)) < 0.8
df_train = df[msk]
df_test = df[~msk]
columns_to_encode = df.select_dtypes(exclude=[np.number]).columns
encoder_dict = {col: LabelEncoder() for col in columns_to_encode }
df_train_enc = df_train
df_test_enc = df_test
for col in columns_to_encode:
    encoder_dict[col].fit_transform(df_train_enc[col])
df=df.fillna('0')
msk=np.random.rand(len(df))<0.8
df_列=df[msk]
df_测试=df[~msk]
列到列编码=df。选择数据类型(排除=[np.number])。列
编码器\u dict={col:LabelEncoder(),用于列\u到\u encode}中的列
df\U列\U enc=df\U列
df_测试_enc=df_测试
对于列\u至\u编码中的列:
编码器dict[col].拟合变换(df\U序列enc[col])
但是,这会引发一个错误
TypeError:“对字符串标签有效,没有问题,因此,如果数据中存在混合类型(例如,由于缺少值),可以使用:

for col in columns_to_encode:
    encoder_dict[col].fit_transform(df_train_enc[col].astype(str))
处理字符串标签时不会出现问题,因此,如果数据中存在混合类型(例如,由于缺少值),可以使用:

for col in columns_to_encode:
    encoder_dict[col].fit_transform(df_train_enc[col].astype(str))

您的数据中可能有
nan
值,请参阅:我没有,请参阅更新的帖子!您的数据中可能有
nan
值,请参阅:我没有,请参阅更新的帖子!您是否尝试过astype(str)
?是的,有帮助,将在7分钟内接受。非常感谢。您是否尝试过astype(str)?是的,有帮助,将在7分钟内接受。非常感谢。