2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【python】pandasの活用~3回目:Excelのデータ取り込み~

Last updated at Posted at 2021-08-24

はじめに

  • バージョン
    • Python: 3.6.8
    • pandas: 1.1.5
    • xlrd: 1.2.0
  • 概要
    • pandasのread_excelを使うと、簡単にエクセルからのデータ取り込みが出来るので試してみます。

今回はエクセルファイル(sample.xlsx)の以下、2つのシートからデータを抽出します。
このデータをもとに、名前と年齢を表示させるコードを作ってみます。(ex: Taro is 20 years old)

  • Sheet1
    sheet1.PNG

  • Sheet2
    sheet2.PNG

1. サンプルコード

 実際に作成したコードは以下です。案外シンプルなコードで書けます。

import pandas as pd


def main():

    # データを取得するシート名一覧
    sheet_list = ["Sheet1", "Sheet2"]

    # エクセルからデータを抽出する
    df = pd.read_excel("sample.xlsx", sheet_name=sheet_list)    # point-1

    for sheet_name in sheet_list:

        print(sheet_name)
        # シート名に該当するDataFrameを抽出
        user_list = df[sheet_name].to_dict(orient="records")    # point-2

        for user in user_list:
            print("  {} is {} years old".format(user["name"], user["age"]))


if __name__ == "__main__":
    main()
  • ポイント
      1. エクセルからデータを抽出する
      • 以下のように、sheet_name=の部分で読み込むシート名一覧を指定することが可能です。

        pd.read_excel(読み込むExcelファイル, sheet_name=シート名一覧)
        
      1. DataFrameをdictに変換する
      • 個人的にDataFrameよりdictの方がデータとして扱いやすいので、dictに変換します。

      • df[sheet_name]でシート名に該当するDataFrameを抽出し、to_dictで変換します。
        その際、orient="records"を入れることで、DataFrameの列名(name/age)がkeyになります。

        df[sheet_name].to_dict(orient="records")
        

2. 実行結果

 想定通りの結果を得ることが出来ました。

Sheet1
  Taro is 20 years old
  Kei is 19 years old
Sheet2
  Keiko is 22 years old
  Hanako is 25 years old

まとめ

 エクセルを含め、表の扱いはpandasに任せるとコードがシンプルになるということがわかると思います。

参考記事

pandas.read_excel — pandas 1.3.2 documentation
pandas.DataFrame.to_dict — pandas 1.3.2 documentation

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?