0

问题陈述:

最初我所拥有的

我有一个包含以下记录的 CSV 文件:-

数据.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)

结果1


现在我有什么: -

但是,当我"在每条记录的前面都收到同一个文件的提要时,解析器的行为很尴尬。数据更改后,新记录如下所示:-

id,age,name
"3500300026,23,"rahul"
"3500300163,45,"sunita"
"3500320786,12,"patrick"
"3500321074,41,"Viper"
"3500321107,54,"Dawn Breaker"

在为这个新数据文件运行相同的脚本(script.py)之后,我得到了以下结果

结果2

字符"仅属于 ISO-8859-1 字符集,因此无论如何这都不是问题。它应该是解析器,无法真正理解为什么解析器不只关注,我专门作为分隔符传递给 read_csv() 的那个。

参考:ISO-8859-1 字符集

我很想知道 pandas 无法正确解析它的原因,或者它与".

4

1 回答 1

1

您可以通过向 read_csv 添加参数来告诉 pandas 您不希望对双引号进行特殊处理:

  test_data2=pd.read_csv('data.csv', quoting=csv.QUOTE_NONE)

read_csv(). 输出将是:

In [11]: df
Out[11]: 
            id  age            name
0  "3500300026   23         "rahul"
1  "3500300163   45        "sunita"
2  "3500320786   12       "patrick"
3  "3500321074   41         "Viper"
4  "3500321107   54  "Dawn Breaker"

仅对逗号进行解析。

于 2021-05-21T17:31:52.613 回答