Skip to main content
 首页 » 编程设计

python之Pandas read_csv 不解释 quotechar

2025年05月04日23think

使用以下 CSV 文件:

"aa"!#"2811"!#"Location"!#"11"!#"67000"!#"ZZ" 
"bb"!#2812!#"Location"!#"22"!#"67540"!#"XX" 
"cc"!#"2813"!#Location!#"33"!#"67117"!#"YY" 
"dd"!#"2452"!#"location"!#"44"!#"67000"!#"ZZ" 

并使用以下 python 代码:

import pandas 
import csv 
pandas.read_csv("test.csv", sep="!#", header=None, quotechar='"') 

给出如下结果:

      0      0       1           2     3        4     5 
0  "aa"  "2811"  "Location"  "11"  "67000"  "ZZ" 
1  "bb"    2812  "Location"  "22"  "67540"  "XX" 
2  "cc"  "2813"    Location  "33"  "67117"  "YY" 
3  "dd"  "2452"  "location"  "44"  "67000"  "ZZ" 

但是,正如我指定的 quotechar='"',结果应该是

    0     1         2   3      4   5 
0  aa  2811  Location  11  67000  ZZ 
1  bb  2812  Location  22  67540  XX 
2  cc  2813  Location  33  67117  YY 
3  dd  2452  location  44  67000  ZZ 

我错过了什么吗?

编辑 将所有 !# 替换为 , 使其工作,所以显然 quotechar 不是解释为 sep 超过 1 个字符。所以我正在寻找没有任何 str.replace() 的解决方案(我无法更改 !#,并且 " 很重要因为 !# 可以在列中找到。

请您参考如下方法:

请看这里: python pandas read_csv quotechar does not work

如果分隔符超过一个字符,quotechar 将不起作用。我尝试使用逗号作为分隔符,但效果很好。