英国でデータサイエンスを学ぶ

30代になってから海外で統計学・機械学習・プログラミングを勉強

MENU

pythonでエクセルファイルを読み込み、Pandasのデータフレーム に入れる

いつもの備忘メモです。

エクセルファイルは、仕事をしている時にはよく使用したのですが、こういう分析作業をちゃんとやらないといけない時には何かしらの言語で操作できるようにした方が便利なので、PythonのPandasのデータフレーム にエクセルシートのデータを読み込む方法のメモです。

適当なエクセルファイルの見本

どんなものでもいいのですが、次のようなエクセルファイルがあるとします。
A B C D
a 1 11 21 31
b 2 12 22 32
c 3 13 23 33
d 4 14 24 34
e 5 15 25 35
f 6 16 26 36
g 7 17 27 37
h 8 18 28 38
i 9 19 29 39
j 10 20 30 40

これをPandasのデータフレーム に読み込みます。
エクセルのファイル名はtest.xslxとします。


PythonのPandasデータフレーム にエクセルのデータを入れる

先ほど準備したtest.xlsxを読み込みます。

import pandas as pd
#Pandasをインポート
book = pd.ExcelFile("test.xlsx")
#エクセルファイルの読み込み
#上位で作成したbookオブジェクトの中身は"pandas.io.excel.ExcelFile object at 0x10e59fe10"になります。
sheetnames = book.sheet_names
#エクセルファイルにあるシート名をsheetnamesに入れる
#今回は1つしかシートがないので、sheetnamesオブジェクトの中身は"['Sheet1']"になります。
df = book.parse(sheetnames[0])
#データフレーム にエクセルファイルのデータを入れる。今回は、1つ目のエクセルシート(Pythonは0から始まるので[0])をdfに入れています。

これでデータフレームとしてエクセルシートを読み込めます。


ModuleNotFoundError: No module named 'xlrd'というエラーが出た場合

私の場合、このMacBook Airにそもそもxlrdをインストールしていなかったので、
"ModuleNotFoundError: No module named 'xlrd'"
というエラーが出てしまいました。
インストール方法は色々とあるのでしょうが、pipで

pip install xlrd

とすれば大丈夫です。