对于numpy genfromtxt,获取常量“(得到12列而不是11列)”错误。我已经尝试了其他帖子中的解决方案,但都无法使用

时间:2018-08-01 17:19:09

标签: python numpy

[数据截图]

output_csv = np.genfromtxt(path, delimiter=',', filling_values=0, autostrip=True, skip_header=1,
                    dtype=({'names': ['sku_num', 'fiscl_wk', 'mkt_nbr', 'mkt_name', 'total_units', 'total_sales',
                                      'econ_cost', 'gm_dollars', 'gm_percent', 'retail', 'aur'],
                            'formats': [int, int, int, str, int, int, int, int, int, int, int]}))

我的输出每次都是这样,我定义了名称并说跳过标题。标题只是包含我要重命名的标题。

ot 12 columns instead of 11)
Line #114182 (got 12 columns instead of 11)
Line #114186 (got 12 columns instead of 11)
Line #114191 (got 12 columns instead of 11)
Line #114201 (got 12 columns instead of 11)
Line #114217 (got 12 columns instead of 11)

我想念什么?我已经尝试过先使用熊猫,但是它会使程序运行变慢(并且不能很好地工作),而且我也知道这应该可以工作。

1 个答案:

答案 0 :(得分:0)

当遇到一行比预期更长的数据时,Numpy会给出该错误。您指定了11个列名和11个列类型,但是报告为包含12列而不是11列的行中有11个逗号。因此,当numpy搜索,分隔符时,它将找到12个条目而不是11个条目。您需要在某些文本编辑器中打开csv,然后查看这些行。