Using quoting=3 option in pandas

pandasでダブルクォートでデータが読み込めない時にすること

pandasを使っていてダブルクォートが原因でread_csvが失敗するときのメモ

quoting=3のオプションを使う

## test.py
import pandas as pd

df=pd.read_csv('./test.tsv', sep="\t")
print(df)

## test.tsv
#0	20190719	"	1163
#1	20190719	2133	2163
#2	20190719	1951	1977

このtest.pyを実行するとエラーになる。で、どうやら、要素の最初の1文字目がダブルクォートだとうまく読み込めなくなるらしい。終わりのダブルクォートを探しにいってないので要素の終わりがわからないというエラーになる。 ではどうするか?というと、read_csvにオプションを指定してあげれば良いらしい。

## test.py
import pandas as pd

df=pd.read_csv('./test.tsv', sep="\t", quoting=3)
print(df)

quoting=3のオプションを入れるとダブルクォートを通常の文字列と同じように扱うようになる。 いままで使っていてダブルクォートが要素の1文字目くることがなかったらか気づかなかったけど、意識してないと忘れそう。

CSV ファイルの読み書き

connvoi's Picture

About connvoi

肉とビールと料理と写真とゲーム たまに技術 python / Solr / PHP / ansible

Jp, Tokyo https://connvoi.com