Python 使用Pandas解析大型txt文件

Python 使用Pandas解析大型txt文件,python,csv,pandas,Python,Csv,Pandas,我有一个很大的.txt文件,接近2gb。首先我试过这个 pd.read\u csv(“large\u text\u file.txt”,header=0,delim\u whitespace=True) 不断抛出一个错误标记数据。C错误:第3行预期有32个字段,saw 36 然后我试着这样做:pd.read\u csv(“wspace.csv”,header=0,sep=r“\s+”),但因为从技术上讲它不是一个csv文件,而且一些内容(如“name”)中有空格,所以输出结果非常糟糕。使用pan

我有一个很大的.txt文件,接近2gb。首先我试过这个
pd.read\u csv(“large\u text\u file.txt”,header=0,delim\u whitespace=True)
不断抛出一个
错误标记数据。C错误:第3行预期有32个字段,saw 36

然后我试着这样做:
pd.read\u csv(“wspace.csv”,header=0,sep=r“\s+”)
,但因为从技术上讲它不是一个
csv
文件,而且一些内容(如“name”)中有空格,所以输出结果非常糟糕。使用pandas
error\u bad\u lines=False
并不理想,因为它只是跳过这个特定表的所有行。有没有办法将大型txt文件格式化为csv?我知道您可以将扩展名从
.txt
更改为
.csv
,但是如果在正确的位置没有逗号,我的输出很差。下面的示例数据说明了我的痛苦

而不是像这样展示:

╔══════════════════════════════════╦═════════╦════════════════════════╗
║               可乐║  可乐║          可乐║
╠══════════════════════════════════╬═════════╬════════════════════════╣
║ 值1║ 价值2║ 123║
║ 分离║ 科尔斯║ 带制表符或4个空格║
║ 这是一个只有一个单元格的行║         ║                        ║
╚══════════════════════════════════╩═════════╩════════════════════════╝
它显示了这一点,这导致了“令牌错误”

╔════════════════╦════════════════════╦════════════════════════╦═══╦══╦═════╗
║ Col1 Col2 Col3║                    ║                        ║   ║  ║     ║
╠════════════════╬════════════════════╬════════════════════════╬═══╬══╬═════╣
║ 价值║ 1.║ 价值║ 2.║  ║ 123║
║ 分离║ 科尔斯║ 带制表符或4个空格║   ║  ║     ║
║ 这是一场争吵║ 只有一个单元格║                        ║   ║  ║     ║
╚════════════════╩════════════════════╩════════════════════════╩═══╩══╩═════╝

尝试使用

例如:

pd.read_fwf("large_text_file.txt")

您能否显示数据文件的前5行实际上是什么样子?将其编辑到您的帖子中,人们可以看到您应该为分隔符等使用什么设置。不要使用
read\u csv
在这个问题中,使用某种扫描仪或更好的流。首先,您的数据显然不符合表格格式。第二,更重要的是,您是否有充分的理由将所有2Gb读入内存并稍后处理,而不是将其作为流处理并将输出重定向到某个地方?因为一旦你解决了阅读问题,你就会面临一个记忆问题。@Oleg我不认为包含的例子是他的数据,它们是他的输出。原始数据可能是正常的表格格式,目前很难说。@Marius是的,它是输出的,并向我们显示内容,内容是:“用一个制表符或4个空格分隔列”--这对
read\u csv
没有好处,因为制表符和4个空格都不能保证。我会用一些扫描器逐行读取文件(两年后就没有python了,所以我需要查找可用的内容),使用带有正则表达式的字符串拆分器对其进行解析,每行执行我必须执行的操作,然后将其转储回结果文件中。除非他乐意将4-6Gb的内存分配给它,否则他在将它按原样读入内存时会遇到内存问题。这不是python或pandas的问题。@oleg我不同意“这不是python或pandas的问题”,我需要专门对此文件进行数据分析,并且它交付给我的方式目前正在造成问题。因此,是的,稍后我打开了该文件,但多亏了pandas,我可以使用
chunksize
命令来获取所需的信息。我当前的问题是试图让pandas解析文件。