【发布时间】:2018-06-17 08:33:19
【问题描述】:
我一直在尝试使用 read_csv 读取文本文件 university_towns.txt,但如屏幕截图所示,在使用正则表达式分隔符解析文件时,如下代码所示,我收到以下错误:
ParserError: Expected 2 fields in line 89, see 3. 错误可能 是因为使用多字符分隔符时引号被忽略。
有什么办法可以解决这个问题,似乎只有一个地方的双引号有问题,还请解释为什么会这样?我也尝试使用 quotechar 参数,但不明白如何使用它。
我读取文件的代码如下:
university_towns = pd.read_csv('university_towns.txt', sep= "\s\(", engine='python', header=None)
university_towns.txt file image
Annville (Lebanon Valley College)[2]
Bethlehem (Lehigh University, Moravian College)
Bloomsburg (Bloomsburg University of Pennsylvania)[2]
Bradford (University of Pittsburgh at Bradford)
California (California University of Pennsylvania)[2]
Carlisle (Dickinson College)
Cecil B. Moore, Philadelphia, also known as "Templetown" (Temple University)
Clarion (Clarion University of Pennsylvania)[2]
Collegeville (Ursinus College)
Cresson (Mount Aloysius College)[2]
East Stroudsburg (East Stroudsburg University of Pennsylvania)[2]
Edinboro (Edinboro University of Pennsylvania)[2]
Erie (Gannon University, Mercyhurst College, Penn State Erie)
Gettysburg (Gettysburg College)[2]
Greensburg (Seton Hill University, University of Pittsburgh at Greensburg)
Grove City (Grove City College)[2]
Huntingdon (Juniata College)[2]
Indiana (Indiana University of Pennsylvania)[2]
Johnstown (University of Pittsburgh at Johnstown)
Kutztown (Kutztown University of Pennsylvania)[2]
Lancaster (Franklin & Marshall)
Carrollton (University of West Georgia)[2]*Dahlonega (North Georgia College & State University)[2]
我在上面粘贴了一些文本文件的行。另外,最后一行是第 89 行。
【问题讨论】:
-
谢谢 - 但使用此文本我无法验证您的错误。哪一个是第 89 行?
-
查看答案,将 2 个参数添加到您的 readcall 以获取有关坏行的输出并修复它们
-
你的最后一行有两个
(,这就是为什么 pd 想要使它成为 3 列而不是像所有其他行一样的 2 列。 - 看起来那条线应该是 2 条单独的线,一所大学用于西乔治亚州,一所大学用于 North G. & State