gpt4 book ai didi

使用 numpy 中的加载文本导入 cdv 时出现 ' b ' 的 Python 问题

转载 作者:行者123 更新时间:2023-11-30 23:19:09 25 4
gpt4 key购买 nike

抱歉,我是新人,因此如果已涵盖此内容,请分享链接,因为我找不到它。

我有一个 csv,在文本查看器中显示如下...

TeamCode,Name,ConferenceCode
5,Akron,875
8,Alabama,911
9,UAB,24312

我试图使用以下内容将其导入字典

import numpy as np
key_value = np.loadtxt('team.csv', delimiter=",",skiprows = 1, dtype = 'str')
for i in key_value:
print(i)

mydict = { k:[v, z] for k,v,z in key_value}

哪个返回

["b'5'" "b'Akron'" "b'875'"]
["b'8'" "b'Alabama'" "b'911'"]
["b'9'" "b'UAB'" "b'24312'"]

我不知道为什么我得到了 b。如果有更好的方法,请告诉我,但我正在尝试从 csv 创建字典,并认为这应该可行。因为我得到 b 的东西并没有按计划使用字典工作。

新编辑...我感谢所有的帮助,但是有人知道我为什么得到 b 吗?导入 numpy 模块时出现我得到它,其他一切都好。我在 Mac 上运行,没有任何原因会导致它吗?

最佳答案

这是 np.loadtxt 中的一个错误,与 python 3 字节字符串和文本字符串之间的区别有关 (see numpy issue #2715) :它将 CSV 作为字节字符串处理,而 CSV 应被视为文本。

当然,正如 Padraic Cunningham 正确指出的那样,您不需要 numpy 来完成此任务,并且可以使用 csv 模块代替。如果您想坚持使用 numpy,在修复该错误之前您有两个选择:

  1. 改为指定 dtype=bytes,这会将值正确解释为字节字符串。然后,将它们转换为真正的字符串。如果所有字段都是字符串,则可以非常简洁地完成,如下所示:

    key_value = np.loadtxt(
    'team.csv',
    delimiter=",",
    skiprows = 1,
    dtype = bytes
    ).astype(str)
  2. 在对 np.loadtxt 的调用中手动指定正确的转换器:

    key_value = np.loadtxt(
    'team.csv',
    delimiter=",",
    skiprows = 1,
    dtype = str,
    converters = {k:np.compat.asstr for k in range(3)}
    )

关于使用 numpy 中的加载文本导入 cdv 时出现 ' b ' 的 Python 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26212978/

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