当前位置: 首页 > 知识库问答 >
问题:

加载大型csv文件时Python熊猫解析器错误

后烨煜
2023-03-14

我正在学习如何通过pandas将大型csv文件加载到python中。我正在使用anaconda和Python3与一台64 GB内存的pc。

贷款组合是一个很大的例子。csv数据集由2509列和100000行组成,约为1.4 GBs。

我可以毫无错误地运行以下代码:

MyList=[]
Chunk_Size = 10000
for chunk in pd.read_csv('Loan_Portfolio_Example_Large.csv', chunksize=Chunk_Size):
    MyList.append(chunk)

然而,当我使用贷款组合时,例如,大型。csv文件创建一个更大的文件,即Loan\u Portfolio\u Example\u Large。csv时,以下代码生成错误。

请注意,我所做的创建较大的文件是我从Loan_Portfolio_Example_L复制100,000行arge.csv并粘贴它们4次(即,粘贴在Excel中的较低行并保存为csv),以创建由500,000个文件组成的文件行和2509列(此文件约为4.2 GB)。

下面的代码创建了一个解析器错误,我不确定为什么因为数据只变得更大,我没有以任何其他方式改变csv文件的结构,我应该有足够的内存,我增加了块大小,这不应该导致任何问题...

有什么想法吗?我想知道csv是否在保存时被损坏了(因为它太大了)

MyList=[]
Chunk_Size = 100000
for chunk in pd.read_csv('Loan_Portfolio_Example_Larger.csv', chunksize=Chunk_Size):
    MyList.append(chunk)

错误输出:

--------------------------------------------------------------------------- ParserError Traceback(最近的调用最后)在2 MyList=[] 3Chunk_Size=100000----

C:\Program Data\Anaconda3\lib\site-包\熊猫\io\parsers.py在下一个(自我)1126 def下一个(自我): 1127尝试:-

C:\ProgramData\Anaconda3\lib\site packages\pandas\io\parsers。获取块中的py(self,size)1186提升停止迭代
1187 size=min(size,self.nrows-self.\currow)-

C:\ProgramData\Anaconda3\lib\site packages\pandas\io\parsers。py in read(self,nrows)1152 def read(self,nrows=None):1153
nrows=\u validate\u integer(“nrows”,nrows)-

C:\Program Data\Anaconda3\lib\site-包\熊猫\io\parsers.py在读取(自我,nrows)2057 def读取(自我,nrows=无): 2058
try:-

熊猫库\解析器。大熊猫中的pyx_图书馆。解析器。文本阅读器。读()

熊猫库\解析器。大熊猫中的pyx_图书馆。解析器。文本阅读器_读低内存()

熊猫库\解析器。大熊猫中的pyx_图书馆。解析器。文本阅读器_读_行()

熊猫库\解析器。大熊猫中的pyx_图书馆。解析器。文本阅读器_标记化_行()

熊猫库\解析器。大熊猫中的pyx_图书馆。解析器。raise_解析器_错误()

ParserError:标记数据时出错。C错误:第145134行中预期有2509个字段,saw 3802

共有1个答案

葛安和
2023-03-14

似乎记录145134在数据中有一些分隔符,并使其看起来有更多的列。尝试将read_csv与下面的参数一起使用,这样它会让您知道有问题的记录,但不会停止该过程。

pd.read_csv('Loan_Portfolio_Example_Large.csv', 
             chunksize=Chunk_Size, 
             error_bad_lines=False,
             warn_bad_lines=True)
 类似资料:
  • 我正在尝试加载csv文件 导入熊猫作为pd dfc=pd。读取_csv('data/Vehicles0515.csv',sep=',') 但是我有以下错误 ParserError:标记数据时出错。C错误:第3004427行预期有22个字段,SAW23 我已阅读包含错误\u错误\u行=错误 但这并不能解决问题 谢谢

  • 我试图加载一个csv文件内基于熊猫的数据帧。我使用了以下导入。 没有找到文件是抛出错误,回溯如下: ()中的FileNotFoundError回溯(最近一次调用)---- c:\users\saish\appdata\local\programs\python\python35-32\lib\site packages\pandas\io\parsers。语法分析器中的py\u f(文件路径或缓冲

  • 我有一个包含日期列的csv文件,该文件中的日期格式为“dd.mm.yy”,当熊猫解析日期时,如果小于或等于12,它将日期理解为一个月,因此05.01.05变成01/05/2005。 我怎样才能解决这个问题 问候

  • 问题内容: 这个问题已经在这里有了答案 : Python中的Windows路径 (5个答案) 4年前关闭。 追溯(最近一次通话): 产品中的文件“”,第1行= pd.read_csv(’C:\ amazon_baby.csv’) 在parser_f中的第562行的文件“ C:\ Users \ kvsn \ Anaconda3 \ lib \ site-packages \ pandas \ io

  • 问题内容: 我正在使用CSV文件,其中几个列具有一个简单的json对象(几个键值对),而其他列则是正常的。这是一个例子: 使用完后,解析该列并将其拆分为其他列的最有效方法是什么? 大约一个小时后,我唯一能想到的是: 看来我做错了,考虑到我需要定期在三列上进行,这需要大量工作。 所需的输出是下面的数据框对象。添加了以下代码行以我((脚的)方式到达那里: 问题答案: 有一种稍微简单的方法,但是最终您必

  • 我运行了以下脚本(https://github.com/FXCMAPI/FXCMTickData/blob/master/TickData34.py)并在末尾添加以下行以下载文件: 然后,我尝试使用pandas打开文件,如下所示: 然而,我得到的是: 为什么数据框是空的? 如果我在TextEdit上打开文件,前几行实际上如下所示: