Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中读取.tsv文件时忽略字符串_Python_Pandas_Csv_Dataframe - Fatal编程技术网

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

在python中读取.tsv文件时忽略字符串,python,pandas,csv,dataframe,Python,Pandas,Csv,Dataframe,我正在尝试读取.tsv文件,但是我注意到我的数据中有一个特定的字符串导致以下错误: ParserError:第112行预期有112个字段,saw 115 我跟踪了错误,发现在我的数据中有“\\t”,当我尝试读取文件时,认为它被tab分隔 我尝试了以下方法,但没有成功: df = pd.read_csv('data.tsv.gz', header=None, sep='\t', quoting=csv.QUOTE_NONE, compression='gzip',

我正在尝试读取.tsv文件,但是我注意到我的数据中有一个特定的字符串导致以下错误:

ParserError:第112行预期有112个字段,saw 115

我跟踪了错误,发现在我的数据中有
“\\t”
,当我尝试读取文件时,认为它被tab分隔

我尝试了以下方法,但没有成功:

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
”:


如果您没有空值,并且可以将其作为空值读取,则可以使用na values参数作为读取csv的一部分,并将该值指定为N/a。

您可以将参数添加到
pd.read\u csv()
称为
escapechar。将转义字符设置为“\”将解决您的问题。因此

df = pd.read_csv('data.tsv.gz', header=None, sep='\t', escapechar='\\',
                 quoting=csv.QUOTE_NONE, compression='gzip', engine='python',
                 encoding='iso8859_1')

正如您在更新的问题中所显示的那样,这是一个技巧。

不幸的是,数据中存在空值。您也可以尝试设置false\u值,以便在读入时将该值设置为false。@JohanL提供了以下解决方案:
escapechar='\\'
,它就像一个符咒一样工作。@Aslan:请更改(或删除)您接受的答案,因为它指向一个无效的解决方案。对于稍后讨论这个问题的人来说,这是令人困惑的。我添加了一个可用的参数作为参考。您是否尝试将
escapechar='\\'
添加到
pd.read\u csv()
参数列表中?我忽略了这么简单的解决方案!非常感谢你,约翰!
df = pd.read_csv('data.tsv.gz', header=None, sep='\t', escapechar='\\',
                 quoting=csv.QUOTE_NONE, compression='gzip', engine='python',
                 encoding='iso8859_1')