pandas read_csv()中的引用参数

9

我正在使用pandas.read_csv()函数,并发现其中有quotechar和quoting参数。

pandas.read_csv(filepath_or_buffer, sep=', ' , quotechar='"', quoting=0) 

这些参数的确切用途是什么?我查阅了文档,但无法理解。

2个回答

5

这是用于处理多个字符串数据的工具:

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文件时

第一个单个字符串保持不变。

默认的引号字符是双引号:

In [41]:
df.to_csv()

Out[41]:
',float,int,strings\n0,0.11607600924932446,0,string\n1,-0.31622948240636567,1,"string,string"\n'

多字符串条目的写法如下:
"string,string"

2

CSV可以只用逗号来分隔字段,但是如果你的字段中有一个逗号,为了避免它变成两个字段,整个字段都需要被引用,通常使用双引号。一些CSV方言将每个字段都用双引号括起来,但这会浪费空间。

引用选项包括QUOTE_MINIMAL(0)、QUOTE_ALL(1)、QUOTE_NONNUMERIC(2)或QUOTE_NONE(3)

引用=0表示最小化引用,因此包含分隔符的字段将被引用。它看起来像这样。

Name, Address, Field
Ai Weiwei, "Berlin, Germany", Visual Arts
"Jagger, Mick", London, Music

注意,您的示例中包含一个两个字符的分隔符,sep=', '(逗号和空格),因此我在上面使用了它,但它也浪费文件空间。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接