Pythonでデータを解析するとき、
元々のデータがExcelの場合のデータ取り込み方法について解説します。
これまでExcelで集計や解析をしていた方は、まずここが第一歩目です。
データを取り込む関数は複数ありますが、ここではpandasを利用しています。
ー筆者についてー
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自体のデータにアクセスする。
コメント