Python 读取熊猫中以制表符分隔的文件时出现意外的换行

Python 读取熊猫中以制表符分隔的文件时出现意外的换行,python,pandas,Python,Pandas,我正在尝试读取此处找到的文件的未压缩版本: 我正在使用Pandas和read_table函数;但是,某些行在选项卡之前包含文本OMIM:,这似乎会导致意外的换行。在OMIM:之后包含字符串的行似乎没有此问题 我假设:导致它以某种方式出现故障,但不确定如何解析它以正确读取行的其余部分。它还搞砸了导入Excel的过程,所以我相信它与文本有关 使用Python3和Pandas的最新版本 您的CSV文件包含空字节(即b'\x00')。尽管文件有点大(100+MB),但它(可能)足够小,可以完全读入内存

我正在尝试读取此处找到的文件的未压缩版本:

我正在使用Pandas和read_table函数;但是,某些行在选项卡之前包含文本OMIM:,这似乎会导致意外的换行。在OMIM:之后包含字符串的行似乎没有此问题

我假设:导致它以某种方式出现故障,但不确定如何解析它以正确读取行的其余部分。它还搞砸了导入Excel的过程,所以我相信它与文本有关


使用Python3和Pandas的最新版本

您的CSV文件包含空字节(即
b'\x00'
)。尽管文件有点大(100+MB),但它(可能)足够小,可以完全读入内存。因此,快速修复方法是使用以下方法删除空字节:

with open('variant_summary.txt', 'rb') as f, open('variant_summary-fixed.txt', 'wb') as g:
    content = f.read()
    content = content.replace(b'\x00', b'')
    g.write(content)
(如果文件太大,无法轻松放入内存,则必须阅读 并将文件分块编写——不是非常困难,但需要编写更多代码。)

一旦您拥有数据文件的固定版本variant_summary-fixed.txt,您就可以
按正常方式将其加载到熊猫中:

df = pd.read_table('variant_summary-fixed.txt', delimiter='\t') 

问题是某些行在
OMIM:
之后包含
'\x00'
符号(带有
0
ASCII码的字符)。您可以在任何十六进制编辑器中轻松看到它,只需查找十六进制代码
00
。。。因此,我想您需要预处理文件(删除/替换所有
'\x00'