こんにちは。カルークです。
今回は、PythonのPandasでエクセルデータを読み込む方法について説明します。
ちなみに自分は最近までこのやり方を知らず、エクセル上でcsvファイルに変換&保存してからpythonでcsv読み込みをしていました。無駄なことしてましたね(^^;
実行環境
今回の実行環境は、Windows 10 (64bit)です。Jupyter Notebookで実行します。
対象のエクセルファイル(サンプル)
今回は、「kakeibo_sample.xlsx」というファイルを用います。他の記事で何度か登場していますが、こんな感じの家計簿のサンプルです。
必要なパッケージをインストール
エクセルファイルは、pandasのread_excel()を利用します。まずはpandasをインストールしておきます。
pip install pandas
また、read_excel()の中ではxlrdを使っているので、以下のコマンドでパッケージをインストールしておきます。
pip install xlrd
以上で準備は整いました。それでは実際にエクセルファイルを読み込んでみます。
エクセルファイルの読み込み
基本的な使い方
read_excelの引数にエクセルファイルを指定するだけで、pandasのデータフレームの形式で読み込みができます。
df = pd.read_excel('./kakeibo_sample.xlsx')
以上でエクセルファイルをデータフレームの中に入れることができました。実際の中身を見てみます。
ちゃんと読み込めていますね。
シート名を指定して読み込む
「kakeibo_sample.xlsx」で「sample_sheet」というシートを作ってみました。
sample_sheetを指定して、データフレームに読み込んでみます。
df = pd.read_excel('./kakeibo_sample.xlsx', sheet_name='sample_sheet')
以上で”sample_sheet”を指定して読み込みができました。確認のため、中身を見てみます。
ちなみに、シートの番号で指定することも可能です。シート番号は0から始まります。今回の「sample_sheet」は2番目にあるので、”1″を指定します。
df = pd.read_excel('./kakeibo_sample.xlsx', sheet_name=1)
ちゃんと読み込めているか確認してみます。
すべてのシートを読み込む
sheet_nameにNoneを指定すると、すべてのシートをまとめて読み込むことが出来ます。
df = pd.read_excel('./kakeibo_sample.xlsx', sheet_name=None)
中身を見てみます。
シートがdict(辞書)形式で入っています。参照する際は、キーにシート名を指定して取得することが出来ます。例えば、sample_sheetを参照する場合はこんな感じです。
df['sample_sheet']
実行結果です。
まとめ
今回は、Pandasでエクセルファイルを読み込む方法についてまとめました。