使用pandas读写结构化表格文件很常见,但是经常遇到读取文件不完整的问题。
在python中,为了从外部读取结构化的表格数据,最常用的方法就是pandas读取,并存为DataFrame结构。如果是逗号分隔的表格,文件名后缀一般是csv,制表符分隔的文件,结尾一般是tsv.
这两种文件都使用特殊符号进行列的分隔。如果列内部本身包含了分隔符号,则程序解析的时候会发生误判,因此pandas中规定,列本身被引号包裹,则忽略内部的分隔符号。问题在于有些数据中存在不闭合的引号,会引发错误解析。因此需要关闭这条规则。
修改如下:
1 | pd.read_csv(join(FILE_PREFIX, 'news.tsv'), sep='\t', header=None, quotechar=" ") |
如果引号本身也具有特殊含义,而列内部又包含特殊分隔符,还可以将quotechar改为其他字符。
本文作者:MyTech::Author