我正在使用pandas==1.1.5
读取CSV文件。我正在运行以下代码:
import pandas as pd
import csv
csv_kwargs = dict(
delimiter="t",
lineterminator="rn",
quoting=csv.QUOTE_MINIMAL,
escapechar="!",
)
pd.read_csv("...", **csv_kwargs)
它会引发以下错误:ValueError: Only length-1 line terminators supported
Pandas文档确认行终止符应该是length-1
(我想是单个字符)。
有什么方法可以和Pandas一起阅读这个CSV吗?我应该用其他方式阅读吗
请注意,文档建议C解析器使用length-1
,也许我可以插入其他解析器?
编辑:未指定行终止符会在文件中间引发解析错误。特别是ParserError: Error tokenizing data.
,它期望字段的数量正确,但得到的字段太多。
第二版:我相信上面的kwargs是用来创建我要读取的csv文件的。
由于!
是一个常见的文本字符,因此问题可能出现在escachar中。
Python的csv模块定义了escapechar:的严格使用
如果引号设置为QUOTE_NONE,编写器用来转义分隔符的一个字符串,如果双引号设置为False,则用来转义quotechar。
但熊猫可能对其有不同的解释:
用于转义其他字符的一个字符串。
您可能有一行包含以下内容:
...t"some important text!"t...
这将转义引号字符并继续将文本解析到该列中。