【发布时间】:2021-08-10 22:38:14
【问题描述】:
问题陈述:
最初我所拥有的
我有一个包含以下记录的 CSV 文件:-
data.csv:-
id,age,name 3500300026,23,"rahul" 3500300163,45,"sunita" 3500320786,12,"patrick" 3500321074,41,"Viper" 3500321107,54,"Dawn Breaker"
当我尝试使用编码“ISO-8859-1”对此运行 script.py 时,它运行良好
# script.py import pandas as pd test_data2=pd.read_csv('data.csv', sep=',', encoding='ISO-8859-1') print(test_data2)
现在我有什么:-
但是当我在每条记录的前面收到带有
"的同一文件的提要时,解析器的行为就很尴尬。数据更改后,新记录如下:-
id,age,name "3500300026,23,"rahul" "3500300163,45,"sunita" "3500320786,12,"patrick" "3500321074,41,"Viper" "3500321107,54,"Dawn Breaker"
在为这个新数据文件运行相同的脚本 (script.py) 后,我得到以下结果
字符 " 仅属于 ISO-8859-1 字符集,因此无论如何这都不是问题。应该是解析器,不明白为什么解析器不只关注,,我专门将它作为分隔符传递给read_csv()。
我很想知道 pandas 无法正确解析它的原因,或者它与" 有什么特殊联系。
【问题讨论】:
-
这不是一个有效的 csv 文件,每行开头都有不匹配的
"。这个“饲料”坏了。这与字符编码无关。谁提供该提要,请询问他们如何获取有效的 csv 数据。 -
问题是有一个开始
",但似乎没有结束"。那里的起始报价是什么?它是身份证的一部分吗?如果"是字段 & 的一部分,也用作引号字符,那么它必须被转义(这似乎没有发生)。 pandas 行为正常,您的 csv 数据文件不正常。 -
感谢@O.Jones 和@Haleenmur 解决了我的问题。我可以看到数据已损坏,但我们有一些字段即使出现
"(双引号)也没关系,它希望解析器只解析,而不检查任何内容。 -
正如我在代码中明确提到的
,作为分隔符,所以我不希望"对我的数据造成任何问题,只要我为每个值设置编码字符
标签: python pandas character-encoding csv-parser