pandas中的引用参数read_csv()

时间:2017-04-11 11:09:41

标签: python csv pandas

我使用pandas.read_csv()并找到quotechar并在其中引用参数,

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

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

2 个答案:

答案 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 =','(逗号和空格),因此我在上面使用了它,但同时也浪费了文件中的空间。