Edited at

Pandas to_csv関数でCSVファイルにダブルクォーテーションを2個続けて出力する方法


PythonでCSVファイルを出力する際に、ダブルクォーテーションを2個続けて出力するのにハマったのでメモ。


動作確認環境

OS Windows8.1

Python 3.6.4

pandas 0.22.0


対応方法

to_csv関数のquoting引数に csv.QUOTE_NONNUMERIC を指定。


サンプルコード

import pandas as pd

import csv

import numpy

# データフレームにデータをセット

df = pd.DataFrame([{'data1': 'ABC', 'data2': 100, 'data3': 3.14, 'data4': numpy.nan, 'data5': '', 'data6': ""}])

# CSVファイルを出力

df.to_csv('output.csv', index=False, encoding='utf-8', quoting=csv.QUOTE_NONNUMERIC)


CSVファイル出力結果

"data1","data2","data3","data4","data5","data6"

"ABC",100,3.14,"","",""


【参考】quoting引数によるCSVファイル出力結果の違い


quoting=csv.QUOTE_MINIMAL ←デフォルト値

<CSVファイル出力結果>

data1,data2,data3,data4,data5,data6

ABC,100,3.14,,,


quoting=csv.QUOTE_NONE

<CSVファイル出力結果>

data1,data2,data3,data4,data5,data6

ABC,100,3.14,,,


quoting=csv.QUOTE_ALL

<CSVファイル出力結果>

"data1","data2","data3","data4","data5","data6"

"ABC","100","3.14","","",""


quoting=csv.QUOTE_NONNUMERIC ←本文から再掲

<CSVファイル出力結果>

"data1","data2","data3","data4","data5","data6"

"ABC",100,3.14,"","",""