【发布时间】:2017-09-15 11:30:21
【问题描述】:
我有一个 csv 文件,我用 pandas 加载如下:
classes_dataset2=pd.read_csv("labels.csv")
classes_dataset2[0:10]
0 A
1 A
2 N
3 N
4 O
5 O
6 5
7 5
8 P
9 P
Name: label, dtype: object
这个dtype: object不被接受
from sklearn.preprocessing import LabelBinarizer
encoder=LabelBinarizer()
classes_dataset = encoder.fit_transform(classes_dataset2)
我收到以下错误
ValueError: Mix of label input types (string and number)
这就是为什么我想将 dtype 从对象转换为 dtype='|S5' 以便得到我的标签如下:
array(['A', 'A', 'N', 'N', 'O', 'O', '5', '5', 'P', 'P'],
dtype='|S5')
如何将对象类型转换为 '|S5' 类型?
EDIT1
当我做classes_dataset2.astype('|S5')
from sklearn.preprocessing import LabelBinarizer
encoder=LabelBinarizer()
classes_dataset = encoder.fit_transform(classes_dataset2.astype('|S5'))
我没有错误。它似乎有效。但是,我想知道是否需要
['A','A','N','N','O','O','5','5,'P','P'] 或 [0,1,2,.. 9] ? 你能向我确认这需要: ['A','A','N','N','O','O','5','5,'P','P'] 而不是索引?
【问题讨论】:
-
classes_dataset2.astype(str)工作吗? -
是的,它可以工作,但它会打印 0 A 1 A 2 N 3 N 4 O 5 O 6 5 7 5 8 P 9 P 名称:标签,数据类型:对象
-
object仅表示 python 对象,实际元素 dtypes 为str,这是预期行为 -
确实,是的。但是出于我解释的原因,我需要在“|S5”中的数据
-
它转换元素而不是索引,你必须做
classes_dateset2.index.astype('|S5')来修改索引
标签: python arrays string pandas scikit-learn