PandasのDataFrameでcsvファイルを読み込む・csvファイルを書き込む

本記事ではPandasのDataFrameにcsvファイルを読み書きする方法を紹介します。

こんな人におすすめ

・PandasのDataFrameでcsvファイルを読み込みたい
・PandasのDataFrameをcsvファイルに書き込みたい
・ヘッダ行の行数を指定してPandasのDataFrameにcsvファイルのデータを読み込みたい
・文字コードを指定してPandasのDataFrameにcsvファイルのデータを読み込みたい

主なライブラリ

numpy
pandas

本ページで使用するライブラリをインポートするときは以下のコードを使用します。

import numpy as np
import pandas as pd

PandasのDataFrameでcsvファイルを読み込む

csvファイル(data1.csv)をPandasのDataFrameに読み込みます。

読み込むcsvファイル(data1.csv)の中身は以下となります。

No,name,price
1,aaa,10000
2,bbb,20000
3,ccc,30000

Pandasのread_csvを使うことで、PandasのDataFrameに読み込むことができます。

df1 = pd.read_csv('data1.csv)

print(df1)
# No name price
# 0 1 aaa 10000
# 1 2 bbb 20000
# 2 3 ccc 30000

PandasのDataFrameをcsvファイルに書き込む

Pandasのto_csv関数を使うことで、PandasのDataFrameをcsvファイルに書き込むことができます。

df1.to_csv('data2.csv')

タブ区切りのtsvファイルを作成することも可能です。
区切り文字をタブにする場合は、以下のようにsepに’\t’を指定します。

df1.to_csv('data2.tsv', sep='\t')

ヘッダ行の行数を指定してPandasのDataFrameにcsvファイルのデータを読み込む

ヘッダ位置を指定してcsvファイルをDataFrameに読み込むときには、headerの引数を使います。
1行目に余分なデータが含まれるdata3.csvを読み込む例を使って引数の使い方を見ていきます。

データここから
No,name,price
1,aaa,10000
2,bbb,20000
3,ccc,30000

下のコードでは、2行目のデータをヘッダとして読み込むためにheader=1を指定します。

df3 = pd.read_csv('data3.csv', header=1)
print(df3)
# No Name Price
# 0 1 aaa 10000
# 1 2 bbb 20000
# 2 3 ccc 30000

文字コードを指定してPandasのDataFrameにcsvファイルのデータを読み込む

文字コードを指定してPandasのDataFrameにcsvファイルのデータを読み込む場合、encoding引数を指定します。

df4 = pd.read_csv("data4.csv", encoding="utf_8")