Pandasではcsvファイルをデータフレームとして読み込んだり、データフレームをcsvファイルに出力することができます。
今回はそれら操作の方法について紹介します。
csvの読込
まずはpandasモジュールを読み込む必要があるので、import文でpandasを読み込みます。
csvの読込にはpd.read_csv()を用います。引数には必ずファイルのパスを指定します。相対パスでも絶対パスでも問題ありません。
実行すると、以下のようなデータが読み込まれます。
import pandas as pd
df = pd.read_csv("C:/Project/apple_stock.xlsx")
エンコーディングの指定
pandasはデフォルトでUTF-8でのエンコーディングです。Shift-Jisなどで読み取りたい場合は引数にencoding=を指定します。
#cp932はshift-jisのこと
df = pd.read_csv("C:/Project/apple_stock.xlsx", encoding="cp932")
シートの指定
引数sheet_nameで読み込むシートを指定できます。シート名を文字列で指定することもできますし、0からの番号でシートを指定することもできます。デフォルトは0です(先頭シート)。
df = pd.read_csv("C:/Project/apple_stock.xlsx", sheet_name=0)
ヘッダーの有無
デフォルトでは1行目はヘッダーとみなされ、カラム名に割り当てられます。引数header=Noneとすることで、1行目もデータとして扱われるようになります。なお、カラム名には0からの連番が割り当てられます。
df = pd.read_csv("C:/Project/apple_stock.xlsx", header=None)
インデックス列の指定
引数index_colを指定することで、インデックスに割り当てる列を指定することができます。
df = pd.read_csv("C:/Project/apple_stock.xlsx", index_col=0)
csvの書き出し
続いてはデータフレームのcsvへの書き出しです。書き出しにはto_csv()を用います。引数には必ず出力先のパスをファイル名含めて渡します。
to_csv()はデータフレームに対して行うので、例ではdf.to_csv()となっています。
df.to_csv("C:/Project/output.xlsx")
シート名の指定
引数sheet_nameを指定することで、出力したシートの名前を変えることができます。
df.to_csv("C:/Project/output.xlsx", sheet_name="test")
エンコーディングの指定
引数encodingを指定することで、出力ファイルのエンコーディングを指定することができます。デフォルトではUTF-8です。
df.to_csv("C:/Project/output.xlsx",encoding="cp932")
Pythonでデータサイエンスするなら
Pythonでデータサイエンスをするなら、以下の書籍がおすすめです。Pandas、matplotlib、Numpy、scikit-learnといったデータサイエンスに必要なライブラリを、体系立てて一通り学ぶことができます。
ややお値段高めですが、これ1冊で十分という内容・ボリュームなので、損はしないと思います^^
初学者の方にはこちらもオススメです^^
まとめ
pandasからcsvの読み書きをする方法を紹介しました。今回紹介した以外にも便利なパラメータが多数用意されています。csvのデータセットをPythonで分析するケースはよくあるので、是非参考にしてみてください。
ではでは👋