我正在尝试读取.tsv文件,但是我注意到我的数据中存在一个特定的字符串,这会导致以下错误:
ParserError :在第112行中预期有112个字段,看到了115
我已经跟踪了错误,发现我的数据中有"\\t"
,当我尝试读取文件时,它认为它被制表符分隔了...
我没有运气就尝试过以下方法:
df = pd.read_csv('data.tsv.gz', header=None, sep='\t',
quoting=csv.QUOTE_NONE, compression='gzip', engine='python',
encoding='iso8859_1')
我也尝试使用:sep='^\\t|\t'
。
示例数据:
There\tShould \\t Only\tbe\t6\tcolumns\t\t
数据帧中的输出应产生6列,其字符串为“ \\t
”:
|There|Should \\t Only|be|6|columns|NA|
答案 0 :(得分:1)
您可以在pd.read_csv()
上添加名为escapechar. Setting the escape char to
'\'`的参数来解决您的问题。因此
df = pd.read_csv('data.tsv.gz', header=None, sep='\t', escapechar='\\',
quoting=csv.QUOTE_NONE, compression='gzip', engine='python',
encoding='iso8859_1')
正如您在更新的问题中所显示的,可以解决问题。
答案 1 :(得分:0)
如果您没有空值并且可以将其读取为空,则可以将na-values参数用作read_csv的一部分,并将该值指定为N / A。