gpt4 book ai didi

python - 将 dtype= 对象转换为 dtype ='|S5'

转载 作者:行者123 更新时间:2023-12-01 03:05:18 33 4
gpt4 key购买 nike

我有一个用 pandas 加载的 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:对象在以下情况下不被接受:

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”类型?

编辑1

当我做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'] 而不是索引?

最佳答案

您可以使用astype来转换Seriesdtype,通常我会选择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在这里的含义,如果你有混合数据类型,它们不都是数字或者是str那么这里的object指的是python这是预期且正确的行为的对象

关于python - 将 dtype= 对象转换为 dtype ='|S5',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43492277/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com