首页 > 解决方案 > 使用带有正则表达式分隔符的 read_csv 读取文本文件

问题描述

我一直在尝试使用 read_csv 读取文本文件 university_towns.txt,但如屏幕截图所示,在使用正则表达式分隔符解析文件时,如下代码所示,我收到以下错误:

ParserError:第 89 行中的预期 2 个字段,看到 3。错误可能是由于使用多字符定界符时忽略引号引起的。

有什么办法可以解决这个问题,似乎只有一个地方的双引号有问题,还请解释为什么会这样?我也尝试使用 quotechar 参数,但不明白如何使用它。

我读取文件的代码如下:

university_towns = pd.read_csv('university_towns.txt', sep= "\s\(", engine='python', header=None)

university_towns.txt 文件图像

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 行。

标签: pythonpandas

解决方案


显示第 83 列,这里可以看到其他一些 - 我认为有两个(-\s\(那里。至少这就是此错误消息的含义。其他可能的问题是那里有奇怪的字符,解析器根本就丢失了。我认为大学名称不可能......无论如何 - 看看那条线。如果这不明显 - 与我们分享。


推荐阅读