gpt4 book ai didi

python - 当我使用 numpy genfromtxt 函数将字符串转换为整数时,为什么我想要转换的内容全部为 0

转载 作者:太空宇宙 更新时间:2023-11-03 21:20:04 26 4
gpt4 key购买 nike

我应该得到不同数量的不同 Material 的木材。但我的所有 Material 都是 0。

%%writefile wood.txt

item,material,number

100,oak,33
110,maple,14
120,oak,7
145,birch,3


tree_to_int = dict(oak=1,maple=2,birch=3)

def convert(s):
return tree_to_int.get(s,0)

data = np.genfromtxt('wood.txt', delimiter=',', dtype=np.int,
names=True,converters={1:convert})
data

[输出]:

array([(100, 0, 33), (110, 0, 14), (120, 0,  7), (145, 0,  3)],dtype=[('item', '<i4'), ('material', '<i4'), ('number', '<i4')])

最佳答案

原来,这是因为从“wood.txt”读取的字符串是字节串。这就是为什么它们在字典中找不到的原因。要修复它,只需像下面这样解码字节串即可

def convert(s):
return tree_to_int.get(s.decode("utf-8") , 0)
<小时/>

或者,您也可以使用 pandas

import pandas

tree_to_int = pandas.DataFrame([{'material': 'oak', 'material_int': 1}, {'material': 'maple', 'material_int': 2}, {'material': 'birch', 'material_int': 3}])

df = pandas.read_csv('wood.txt')

data = pandas.merge(df, tree_to_int, how='left', on='material')

关于python - 当我使用 numpy genfromtxt 函数将字符串转换为整数时,为什么我想要转换的内容全部为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54359405/

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