是否可以在 pandas 中读取带有 `\r\n` 行终止符的 csv?
Is it possible to read a csv with `\r\n` line terminators in pandas?
我正在使用 pandas==1.1.5
读取 CSV 文件。我是运行以下代码:
import pandas as pd
import csv
csv_kwargs = dict(
delimiter="\t",
lineterminator="\r\n",
quoting=csv.QUOTE_MINIMAL,
escapechar="!",
)
pd.read_csv("...", **csv_kwargs)
它引发了以下错误:ValueError: Only length-1 line terminators supported
。
Pandas 文档确认行终止符应该是 length-1
(我想是单个字符)。
有什么方法可以用 Pandas 读取此 CSV 文件,还是我应该用其他方式读取它?
请注意,文档建议 length-1
用于 C 解析器,也许我可以插入一些其他解析器?
编辑:不指定行终止符会在文件中间引发解析错误。具体来说 ParserError: Error tokenizing data.
,它需要正确数量的字段,但结果太多了。
EDIT2:我确信上面的 kwargs 用于创建我正在尝试读取的 csv 文件。
问题可能出在 escapchar 中,因为 !
是一个普通的文本字符。
Python 的 csv 模块定义了一个 very strict use of escapechar:
A one-character string used by the writer to escape the delimiter if quoting is set to QUOTE_NONE and the quotechar if doublequote is False.
但有可能 pandas interprets it differently:
One-character string used to escape other characters.
您的一行中可能包含以下内容:
...\t"some important text!"\t...
这将转义引号字符并继续将文本解析到该列中。
我正在使用 pandas==1.1.5
读取 CSV 文件。我是运行以下代码:
import pandas as pd
import csv
csv_kwargs = dict(
delimiter="\t",
lineterminator="\r\n",
quoting=csv.QUOTE_MINIMAL,
escapechar="!",
)
pd.read_csv("...", **csv_kwargs)
它引发了以下错误:ValueError: Only length-1 line terminators supported
。
Pandas 文档确认行终止符应该是 length-1
(我想是单个字符)。
有什么方法可以用 Pandas 读取此 CSV 文件,还是我应该用其他方式读取它?
请注意,文档建议 length-1
用于 C 解析器,也许我可以插入一些其他解析器?
编辑:不指定行终止符会在文件中间引发解析错误。具体来说 ParserError: Error tokenizing data.
,它需要正确数量的字段,但结果太多了。
EDIT2:我确信上面的 kwargs 用于创建我正在尝试读取的 csv 文件。
问题可能出在 escapchar 中,因为 !
是一个普通的文本字符。
Python 的 csv 模块定义了一个 very strict use of escapechar:
A one-character string used by the writer to escape the delimiter if quoting is set to QUOTE_NONE and the quotechar if doublequote is False.
但有可能 pandas interprets it differently:
One-character string used to escape other characters.
您的一行中可能包含以下内容:
...\t"some important text!"\t...
这将转义引号字符并继续将文本解析到该列中。