首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将dtype=对象转换为dtype=‘区S5’

将dtype=对象转换为dtype=‘区S5’
EN

Stack Overflow用户
提问于 2017-04-19 09:54:31
回答 1查看 896关注 0票数 1

我有一个csv文件,我装载熊猫如下:

代码语言:javascript
复制
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

代码语言:javascript
复制
from sklearn.preprocessing import LabelBinarizer
encoder=LabelBinarizer()
classes_dataset = encoder.fit_transform(classes_dataset2)

我得到了以下错误

代码语言:javascript
复制
ValueError: Mix of label input types (string and number)

这就是为什么我希望将dtype从object转换为dtype='|S5',以便按如下方式获得标签:

代码语言:javascript
复制
array(['A', 'A', 'N', 'N', 'O', 'O', '5', '5', 'P', 'P'], 
      dtype='|S5')

我如何将对象类型转换为“AC.26 S5”类型?

EDIT1

当我做classes_dataset2.astype('|S5')的时候

代码语言:javascript
复制
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”,而不是指数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-19 10:39:17

您可以使用astype来转换dtype of Series,通常我会选择str,但是如果您坚持使用numpy类型的'|S5',则只需传递以下内容:

代码语言:javascript
复制
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对象,它是预期的和正确的行为。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43492277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档