我使用pandas.read_csv()
并找到quotechar
并在其中引用参数,
pandas.read_csv(filepath_or_buffer, sep=', ' , quotechar='"', quoting=0)
这些参数的确切用法是什么?我检查了文档,但我无法理解它。
答案 0 :(得分:3)
用于处理多字符串数据:
In [39]:
data = {"strings": ["string", "string,string"],
"int": np.arange(2),
"float": np.random.randn(2)}
df = pd.DataFrame(data)
df
Out[39]:
float int strings
0 0.116076 0 string
1 -0.316229 1 string,string
In [40]:
df.to_csv(quotechar="'")
Out[40]:
",float,int,strings\n0,0.11607600924932446,0,string\n1,-0.31622948240636567,1,'string,string'\n"
您可以看到string,string
被引用到:
'string,string'
写入csv时
虽然第一个单独的字符串是独立的。
默认引号char是双引号:
In [41]:
df.to_csv()
Out[41]:
',float,int,strings\n0,0.11607600924932446,0,string\n1,-0.31622948240636567,1,"string,string"\n'
多字符串条目写为:
"string,string"
答案 1 :(得分:1)
CSV可以仅使用逗号分隔字段,但是如果您在其中包含一个逗号的字段,为避免成为两个字段,需要将整个字段括起来,通常用双引号引起来。一些CSV方言将每个字段都用双引号引起来,但这浪费了空间。
引用选项为QUOTE_MINIMAL(0),QUOTE_ALL(1),QUOTE_NONNUMERIC(2)或QUOTE_NONE(3)
quoting = 0表示最少的引用,因此将仅封闭包含分隔符的字段。看起来像这样。
Name, Address, Field
Ai Weiwei, "Berlin, Germany", Visual Arts
"Jagger, Mick", London, Music
还请注意,您的示例包含两个字符分隔符sep =','(逗号和空格),因此我在上面使用了它,但同时也浪费了文件中的空间。