【问题标题】:Numpy ValueError (got 1 columns instead of 2)Numpy ValueError(得到 1 列而不是 2 列)
【发布时间】:2015-10-26 03:10:06
【问题描述】:

在有人指出重复之前,这与this 不是同一个问题。

在那个问题中,他的错误是

ValueError: Some errors were detected !
Line #88 (got 1435 columns instead of 1434)

比预期多 1 列(可能某处有额外的分隔符)。

我正在处理一个文件,其中包含由制表符 ('\t') 分隔的两列,并且正在使用以下内容

movies = np.genfromtxt('imdb/movie_keywords', delimiter = '\t', dtype = None)

我收到以下错误

ValueError: Some errors were detected !
Line #44209 (got 1 columns instead of 2)
Line #44210 (got 1 columns instead of 2)
Line #44211 (got 1 columns instead of 2)
Line #93460 (got 1 columns instead of 2)
...

这是文件中的四行(原始文本),

前两个是第1行和第#行,不会抛出错误

'$ (1971)\tbank-heist'
'Angela (1954)\tamerican-car-salesman'

这些来自 #44209 #93463 行,它们会引发错误

'Animated (1989)\taustralian'
'Animated Motion #1 (1976)\tindependent-film'

可能会有一些侦探指出导致 numpy 不拿起错误抛出行中的选项卡的区别吗?

补充一下,如果使用 pandas 和此代码,我不会收到错误:

keywords = pd.read_csv('imdb/movie_keywords', delimiter = '\t', dtype = None, names = ['movie', 'keyword'])

但是,Pandas 不足以完成我希望进行的操作。

【问题讨论】:

  • 如果Animated (1989)\taustralian 包含文字反斜杠后跟文字t 而不是制表符,您可能会遇到此错误。
  • @unutbu 文件中的文本:“Animated (1989) australian”
  • genfromtxt 报告行号,计数从 1 开始。Python 使用从 0 开始的索引。根据您定位第 44209 行的方式,可能会出现“逐一”错误。检查'Animated (1989)\taustralian' 之前的行可能不会有什么坏处。
  • @unutbu 好主意,我考虑过这个。这就是我选择第 #93463 行的原因,因为第 #93460-#93465 行都返回错误。
  • 你能把这些行的repr 贴出来吗?

标签: python numpy


【解决方案1】:

这个问题的目的是找出 Numpy 的问题,正如问题中所述,使用 Pandas 不会出现错误。但是,如果有人正在寻找解决方法,这似乎可行:

keywords = pd.read_csv('imdb/movie_keywords', delimiter = '\t', dtype = None, names = ['movie', 'keyword'])

keywords_array = keywords.as_matrix()

【讨论】:

  • 您尝试genfromtxtnames 参数吗?
猜你喜欢
  • 2014-06-14
  • 1970-01-01
  • 2018-04-26
  • 2017-01-22
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-09
相关资源
最近更新 更多