【Python】Excelからデータを取り込む【初心者の第一歩】

python,excel Python

Pythonでデータを解析するとき、
元々のデータがExcelの場合のデータ取り込み方法について解説します。
これまでExcelで集計や解析をしていた方は、まずここが第一歩目です。

データを取り込む関数は複数ありますが、ここではpandasを利用しています。

Mogrii
Mogrii

 ー筆者についてー

Excelを使う事務作業が多いサラリーマン

定型の解析や作図で時間を使ってしまう現状に嫌気がさし

Pythonで楽に仕事ができないか日々勉強中。

>機械学習というより定型解析の自動化、作図の自動化などが主な関心。

非エンジニア。数学も苦手。

今回使用したデータは、ファイル名「arisounadata.xlsx」です。
内容は適当ですが、仮に「友達に聞いた、ごはんに一番合うと思うおかず」です。
回答者番号(No)と、性別(Gender)、回答(Answer)の3列です。
皆さんは好きなご自身の使用されるデータを準備してください。


中身が英語な理由は、著者が日本語をうまく扱えないからです。
詳細は下記リンクをご覧ください。

0. 準備

ライブラリのインストールや、データを.pyと同じフォルダに入れて準備ができている方、
もしくはデータのディレクトリの指定ができる方は、次に進んでください。

pandasのインストール

pandasをインストールします。

Anaconda、minicondaを使用している方

conda install pandas

それ以外の方

pip install pandas

excelの準備

excelを読み込む際は、そのexcelデータが存在する場所(ディレクトリ)を指定する必要があります。
別の場所にデータを置いておき、その場所を指定しても問題ありませんが、
ここではコードを簡単にするため、
Pythonのコードを記載しているファイルと同じ場所にコピーします。

  • Jupyter notebookの場合、”.ipynb”があるフォルダと同じ場所
  • それ以外の場合、”.py”があるフォルダと同じ場所

忘れがち、「Excelを閉じる」

中身を確認するためにExcelファイルを開いている場合は、閉じてください。
開いたまま後述の読み込みを実施すると、
「PermissionError: [Errno 13] Permission denied:・・・」が出る。

case1. 使うシートが1枚だけのとき

データの解析に使うシートが1枚だけの時は、シート名を指定してインプットしています。

import pandas as pd

df = pd.read_excel('arisounadata.xlsx', sheet_name= 'Answer')

シート名を指定しない場合は1枚目が読み込まれます。
また、シート名を数字にしても指定したシートが読み込めます(1番目は0、2番目は1・・・)

case2. 使うシートが複数枚あるとき

1つのブックにシートが複数あり、いくつか解析に使いたいときは、
ブックをインプットして、シート番号で呼び出します。

#ブックを読み込む
excel = pd.ExcelFile('arisounadata.xlsx')
#シート名を取得する
excel_sheet_name = excel.sheet_names
#1番目のシートを、df2に入れる(1番目は[0]、2番目は[1]・・・)
df2 = excel.parse(excel_sheet_name[0])

最後に データがちゃんと入ったか確認する

データがちゃんと入っているかは、下記のように確認しています。

#データフレームの中身を全て表示
print(df)
#データの行数を確認する(このデータでは回答者数,50)
print(len(df))
#データの列数を確認する(このデータでは、No, Gender, Answerの3つ)
print(len(df.columns))

他のライブラリ

Excelの読み込みにはほかに下記のようなライブラリもあります。
この記事では取り扱わないのですが、もし上記方法でうまくいかない場合は調べてみてください。

  • openpyxl・・・書き込みなどを行う場合、Excel自体のデータにアクセスする。

コメント

タイトルとURLをコピーしました