Pandas to_csv 方法的选项 quoting=csv.QUOTE_MINIMAL 不起作用

Amb*_*mbr 1 python csv pandas

PandasDataFrame.to_csv方法的选项quoting=csv.QUOTE_MINIMAL似乎不起作用。

我有以下输入制表符分隔的数据,在下面的示例中 -> 表示制表符和 。表示空格字符。

Jhon->35->123.Vroom.St->01120

使用DataFrame.to_csv选项 quoting=csv.QUOTE_MINIMAL` 之后,我期待以下输出。

Jhon 35 "123 Vroom St" 01120

这意味着仅引用分隔数据中有空格的地址值,如果没有空格则不引用。

df.to_csv(file,
          sep='\t',
          header=False,
          index=False,
          quoting=csv.QUOTE_MINIMAL)
Run Code Online (Sandbox Code Playgroud)

但是,我得到以下输出。地址上没有报价。

Jhon 35 123 Vroom St 01120

使用选项 quoting=csv.QUOTE_ALL` 让我低于我不想要的。

"Jhon" "35" "123 Vroom St" "01120"

有人可以帮我看看这里出了什么问题吗?

谢谢。

小智 6

Pandas 中提供以下选项用于报价:

  1. csv.QUOTE_ALL:引用所有字段
  2. csv.QUOTE_MINIMAL:引用包含特殊字符(例如分隔符、引号字符或行终止符中的任何字符)的字段。
  3. csv.QUOTE_NONNUMERIC :引用所有非数字字段。
  4. csv.QUOTE_NONE :从不引用字段。

在您的情况下,由于您使用的是 csv.QUOTE_MINIMAL 并且您的文本没有上述任何特殊字符,因此不会引用任何字段。我建议使用 csv.QUOTE_NONNUMERIC 来获取您正在寻找的格式。

df.to_csv(file, sep='\t', header=False, index=False, quoting=csv.QUOTE_NONNUMERIC)
Run Code Online (Sandbox Code Playgroud)

参考: https: //docs.python.org/3/library/csv.html