【发布时间】:2020-09-11 18:07:09
【问题描述】:
import pandas as pd
from sklearn.preprocessing import LabelEncoder
pd.set_option('display.max_columns', 500)
df=pd.read_csv("https://media-doselect.s3.amazonaws.com/generic/831JKKEkW7kqd5M4evNva9LyB/insurance_grouped.csv")
le = LabelEncoder()#use this encoder to encod
df.BMI_group = le.fit_transform(df.BMI_group.values)
print(df.head())
预期产出 - 年龄 性别 bmi 儿童 吸烟区收费 BMI_group 0 19 0 27.900 0 1 3 16884.92400 2 1 18 1 33.770 1 0 2 1725.55230 1 2 28 1 33.000 3 0 2 4449.46200 1 3 33 1 22.705 0 0 1 21984.47061 0 4 32 1 28.880 0 0 1 3866.85520 2
错误信息 - TypeError Traceback(最近一次调用最后一次) ~\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py in _encode(values, uniques, encode) 104 尝试: --> 105 res = _encode_python(值,唯一性,编码) 106 除了类型错误:
~\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py in _encode_python(值,唯一性,编码) 58 如果 uniques 为 None: ---> 59 个唯一值 = 排序(集合(值)) 60 个唯一值 = np.array(uniques, dtype=values.dtype)
TypeError: '
在处理上述异常的过程中,又发生了一个异常:
TypeError Traceback(最近一次调用最后一次) 在 4 #df=pd.read_csv("https://media-doselect.s3.amazonaws.com/generic/831JKKEkW7kqd5M4evNva9LyB/insurance_grouped.csv") 5 le = LabelEncoder()#使用这个编码器进行编码 ----> 6 df.BMI_group = le.fit_transform(df.BMI_group.values) 7 df.BMI_group
~\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py in fit_transform(self, y) 第234章 235 y = column_or_1d(y,警告=真) --> 236 self.classes_, y = _encode(y, encode=True) 第237章 238
~\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py in _encode(values, uniques, encode) 105 res = _encode_python(值,唯一性,编码) 106 除了类型错误: --> 107 raise TypeError("参数必须是字符串或数字") 108返回资源 109 其他:
TypeError: 参数必须是字符串或数字
【问题讨论】:
-
这个thread的可能重复?
标签: python python-3.x pandas scikit-learn