Python pandas Excel 読み込む方法 読み込み

python

【Python】pandasでExcelファイルを読み込む方法

2020年5月10日

こんにちは。

 

産婦人科医で人工知能の研究をしているTommy(Twitter:@obgyntommy)です。

 

本記事ではPythonのライブラリの1つである pandas の計算処理について学習していきます。

 

pandasの使い方については、以下の記事にまとめていますので参照してください。

関連記事
Python pandas 使い方
【Python】Pandasの使い方【基本から応用まで全て解説】

続きを見る

 

また、pandasで Excelファイルを書き込む方法については以下の記事を参考にしてください。

関連記事
Python pandas Excel 書き込む方法 書き込み
【Python】pandasでExcelファイルを書き込む方法

続きを見る

 

データ解析をする際にはCSV、データベースなどのデータを扱いますが、Excelもその一つです。

 

pandasでExcelデータを取り扱えうようになれれば、普段、エクセルでデータを扱っている多くのユーザーとデータを共有できるようになります。

 

本記事では pandas を利用して Excel  の読み込み方を習得してを使いこなせるようになりましょう。

 

なお、pandas.read_excel に関する公式ドキュメントは以下になります。

 

pandas.read_excel — pandas 1.1.0 documentation
pandas.read_excel — pandas 1.1.0 documentation

続きを見る

 

ここで本記事の学習到達目標です。

 

 本記事の学習目標

  • pandasのインストール方法を学習する
  •  Excelのシートを指定する方法を学習する
  •  Excelを1つずつ、又はまとめてデータを読み込む方法を学習する
  •  Excelの列名、行名がある場合、ない場合についての対応を学習する

 

今回は、これらのテーマに沿って Excelを読み込む方法についてしっかり学習していきましょう。

 

データの準備とpandasの実行

Python pandas Excel 読み込む方法 読み込み

pandasのインストール方法

pandasでエクセルを取り扱うときには、xlrd をインストールしておきましょう。

 

In[]

 

pandasをインポートする

まず、pandas を読み込みます。

 

下記を実行してください。

 

In[]

 

本記事で扱う対象データ

データは適当に用意した下記のデータを使います。

 

Sheet1, 2, 3, 4 にデータが入っているExcelファイルです。

 

実行して、パスを設定しておきましょう。

In[]

 

Sheet1

1列目に列名があるデータです。

Python pandas Excel 読み込む方法 読み込み

Sheet2

Sheet1に3行ほど、他のデータが混じっていて、4行目からデータが始まっている場合です。

 

Python pandas Excel 読み込む方法 読み込み

Sheet3

以下の表がSheet1の列名がない場合です。

Python pandas Excel 読み込む方法 読み込み

Sheet4

Sheet1に index(行名)をつけたもの

 

行名は 1, 2, 3, 4, 5 としています。

 

index は数値に限らず、文字列でもOKです。

Python pandas Excel 読み込む方法 読み込み

読み込み

Python pandas Excel 読み込む方法 読み込み

pandasでエクセルを読み込むときには、read_excelメソッドを使います。

 

さっそく、読み込んでみましょう。

 

read_excel メソッドにエクセルのパスを渡します。

 

In[]

 

Out[]

Python pandas Excel 読み込む方法 読み込み

引数にファイルのパスだけ渡すと、1つ目のシートを読み込みます。

 

Excelシートを指定する方法

Excelのファイルとcsvファイルが明確に違うところは、Excelにはシートの概念があるということですね。

 

Python pandas Excel 読み込む方法 読み込み

どのシートを読み込むかは、パラメータの「sheet_name」で指定できます。

 

指定方法は、左から順に 0, 1, 2, 3 と指定するか、シート名で指定します。

 

指示しない場合は、sheet_name=0 となっているので、ファイル名だけ渡すと1つ目のシートを読み込みます。

 

1つずつ Excelデータを読み込む方法

まず、数値で指定して2番目のSheet2を読んでみましょう。

 

In[]

 

Out[]

Python pandas Excel 読み込む方法 読み込み

きちんとファイルを読み込めているのが分かりますね。

 

列名が、Unnamed2, 3になっているのは、データの開始位置がずれているためです。

 

後で読めるように調整していきましょう。

 

次に、シート名を指定して、Sheet2を読み込みましょう。

 

In[]

 

Sheet1と同様に、Sheet2が読み込めた事が分かりました。

 

まとめて Excelデータを読み込む方法

sheet_name  は list で複数のシートを指定することができます。

 

指定は数値によるシートの並び順でも、シート名でも指定でき、混在して指定することができます。

 

sheet_name=[‘Sheet2’, 0] でSheet2とSheet1を読み込みましょう。

 

読み込んだ後、型を確認します。

 

In[]

 

複数指定した場合は、dict で返ってきます。

 

DataFrame を取り出すには、sheet_name で指定した値を使います。

 

Python pandas Excel 読み込む方法 読み込み

DataFrame で取り出して、データを確認しましょう。

 

「0」のSheet1を確認

In[]

 

「Sheet2」のSheet2を確認

In[]

 

全ての Excelシートを読み込む方法

全てのシートを読み込む場合には、sheet_name=None を使用します。

 

この場合は、シート名の「Sheet1」「Sheet2」…がキー値となります。

 

In[]

 

 Excelにheader(列名)がある場合

Python pandas Excel 読み込む方法 読み込み

列名を指定して読み込んだり、データの開始位置がずれているデータについてもみていきます。

 

 Excelの列名を指定して読み込む方法

次は、Sheet1を列名を指定して読み込みます。

 

データはなんでも詰め込まれて入っている場合が多いです。

 

read_csv でパラメータ「usecols」を指定することで、必要な列のみを取得できます。

 

対象の列名は、usecols[‘列名’, ‘列名’, …] とリスト型で指定します。

 

In[]

 

Out[]

Python pandas Excel 読み込む方法 読み込み

 Excelの列名の位置がずれている場合

データを取り扱うと色々なフォーマットに出会います。

 

「Sheet2」では最初の3行に日付などのデータが入っており、使いたいデータは4行目から始まっています。

 

この場合は開始位置をパラメータ「header」で開始行を指定します。

 

開始行は0から数えるので、今回は header=3 を指定します。

 

In[]

 

Out[]

Python pandas Excel 読み込む方法 読み込み

最初の3行を飛ばして、読み込めているのが分かりますね。

 

 Excelのheader(列名)がない場合

Python pandas Excel 読み込む方法 読み込み

列名がないデータもよくあるので、その際の対処法について見ていきましょう。

 

列名のない「Sheet3」を読み込んでみます。

 

列名ない場合は、パラメータ「header」を None とします。

 

In[]

 

この場合、列名は0,1…と自動で数字が割り当てられます。

 

Out[]

Python pandas Excel 読み込む方法 読み込み

列を指定して読み込む方法

header がなくても、usecols を使うことで、読み込む列を指定できます。

 

指定する列は、自動で割り振られる数値を [0, 1] のように指定します

 

In[]

 

Out[]

Python pandas Excel 読み込む方法 読み込み

 Excelの列名を付与する方法

列名がただの数値では、何の列だか分かりにくいですよね。

 

そんな時は、パラメータ「names」に列名をタプルやリスト型で指定できます。

 

In[]

 

Out[]

Python pandas Excel 読み込む方法 読み込み

 Excelでindex(行名)がある場合の読み込む方法

Python pandas Excel 読み込む方法 読み込み

次に、Sheet4の index がついているデータを読み込みます。

 

1行目は自動で header とされますが、1列目は列データとして取り扱われます

 

これでは、1列目を  index として使えません。

 

In[]

 

Out[]

Python pandas Excel 読み込む方法 読み込み

これを、index と指定するには、パラメータ「index_col」を使用します。

 

1, 2, 3 列目は 0, 1, 2 とカウントするので、index_col=0 として1列目を index とします。

 

In[]

 

Out[]

Python pandas Excel 読み込む方法 読み込み

 Excelのindex(行名)を指定して読み込む方法

Python pandas Excel 読み込む方法 読み込み

指定した列のデータを取得したい場合、列名を指定していましたが、

 

指定した行のデータを取得したい場合では、読み込みたくない行名を指定します。

 

その場合、パラメータ「skiprows」に除外したい行名をタプルやリストにして渡します。

 

今回は、index が 1, 2, 3, 4, 5 と指定されている状態で確認していきましょう。

 

まず、index  が 1 のもの以外を読み込む場合。

 

In[]

 

Out[]

Python pandas Excel 読み込む方法 読み込み

これでは、実用性がないので、1つとびでデータを取得したい場合もやってみましょう。

 

range メソッドで、(1, 3, 5) というタプルを作って、偶数行の 2, 4 だけ読み込みます。

 

In[]

 

pandas の使用方法については以下の記事にまとめています。一通り本記事でpandasで Excelを使用する方法を学習できた方は再度復習してみましょう。

関連記事
Python pandas 使い方
【Python】Pandasの使い方【基本から応用まで全て解説】

続きを見る

 

また、pandasで Excelファイルを書き込む方法については以下の記事を参考にしてください。

関連記事
Python pandas Excel 書き込む方法 書き込み
【Python】pandasでExcelファイルを書き込む方法

続きを見る

 

 

 

 

人気記事 【入門から上級レベルまで】人工知能・機械学習の独学におすすめの本25選

人気記事 無料あり:機械学習エンジニアの僕がおすすめするAI(機械学習)特化型プログラミングスクール3社


-python
-, ,

Copyright© Tommy blog  , 2020 All Rights Reserved.