Pandasでcsv, excelデータの読み込み・書き込み

[最終更新] 2018年3月21日

Pandasでcsvおよびexcelデータについて、読み込みと書き込みをする。

環境はPython 3.6.3、Pandas 0.20.3。

スポンサーリンク

やり方

pythonでcsvの読み書きにはcsvモジュールがあるし、excelファイルの読み込みにはxlrd、書き込みにはxlsxwriterなどがある。が、その後のデータの扱いなども考えると、pandasを使うのがやりやすい(内部的に何を使っているかは置いといて)。

特に速度のことは考えない。まぁ速度を考えるならそもそもexcel形式のファイルなんて使わないだろうし。

読み込み

まずデータの読み込み。

df = pd.read_csv('hoge.csv', index=False, dtype='object', encoding='utf-8', skipinitialspace=True, escapechar='\\')
df = pd.read_excel('hoge.xlsx', index=False, dytpe='object')

read_csvメソッドでcsvを読み込み、read_excelメソッドでxlsxを読み込む。読み込む際、インデックスの列がなければindex=Falseを指定する(勝手に連番で割り振られる)。また、勝手に型を判定されると不都合な場合(電話番号とか、数値判定されて頭の0が消されると困るようなやつ)は、dtype=’object’でとりあえず全部文字列として扱うとやりやすい。encodingは必要に応じて。utf-8ならあえて指定する必要はない。skipinitialspaceは、Trueにすると,の後の余分なスペースを無視してくれる。デフォルトではダブルクォーテーションがquotecharとしてセットされているが、\でエスケープしたい時はescapechar=’\\’。エスケープシーケンスをさらにエスケープする。

そのほかのオプションは公式ドキュメント。

それと、以下の記事がわかりやすかった。

書き込み

データフレームを書き込む。

df.to_csv('hoge.csv', index=False, encoding='utf-8')
df.to_excel('hoge.xlsx', index=False)

to_csvメソッドでcsvファイルを書き込み、to_excelメソッドでxlsxファイルを書き込む。

そのほかのオプションは公式ドキュメント。

関連コンテンツ

関連記事

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。