我有一个csv文件,我装载熊猫如下:
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从object转换为dtype='|S5',以便按如下方式获得标签:
array(['A', 'A', 'N', 'N', 'O', 'O', '5', '5', 'P', 'P'],
dtype='|S5')我如何将对象类型转换为“AC.26 S5”类型?
EDIT1
当我做classes_dataset2.astype('|S5')的时候
from sklearn.preprocessing import LabelBinarizer
encoder=LabelBinarizer()
classes_dataset = encoder.fit_transform(classes_dataset2.astype('|S5'))我没有错误。看起来很管用。不过,我想知道
‘,'A','N','N','O','O','5','5’,'P','P‘或0,1,2。九?你能不能向我证实:“a”、“A”、“N”、“N”、“O”、“O”、“5”、“5”、“P”、“P”,而不是指数?
发布于 2017-04-19 10:39:17
您可以使用astype来转换dtype of Series,通常我会选择str,但是如果您坚持使用numpy类型的'|S5',则只需传递以下内容:
In [16]:
s = pd.Series(['A','A', 'N', 'N', 'O', 'O', 5, 5, 'P','P'])
s
Out[16]:
0 A
1 A
2 N
3 N
4 O
5 O
6 5
7 5
8 P
9 P
dtype: object
In [18]:
s.astype('|S5')
Out[18]:
0 b'A'
1 b'A'
2 b'N'
3 b'N'
4 b'O'
5 b'O'
6 b'5'
7 b'5'
8 b'P'
9 b'P'
dtype: bytes40引用object在这里的含义,如果您的混合dtype不是全部数值的,或者是str,那么object在这里引用python对象,它是预期的和正确的行为。
https://stackoverflow.com/questions/43492277
复制相似问题