在python中读取.tsv文件时忽略字符串

时间:2019-04-17 23:21:12

标签: python pandas csv dataframe

我正在尝试读取.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|

2 个答案:

答案 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。