正在读取Pandas中由制表符分隔的文件,其中包含意外的行b

2024-09-27 02:18:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试读取以下文件的未压缩版本: http://ftp.ncbi.nlm.nih.gov/pub/clinvar/tab_delimited/variant_summary.txt.gz

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

我假设:会导致它以某种方式出现问题,但不确定如何解决它以正确地读取行的其余部分。它还把导入Excel的过程搞砸了,所以我相信它和文本有关。在

使用Python3和最新版本的熊猫。在


Tags: 文件文本版本httpftpncbinlmtab
1条回答
网友
1楼 · 发布于 2024-09-27 02:18:42

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-固定.txt,您可以
正常加载到熊猫中:

^{pr2}$

相关问题 更多 >

    热门问题