使用以下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不起作用。我尝试使用逗号作为分隔符,并且可以正常工作。

09-07 14:45