■ はじめに
https://dk521123.hatenablog.com/entry/2019/11/05/221010
の続き。 今回は、Pandas で Excel を扱う際のメモ。
目次
【0】使用上の注意 【1】読み込み 【2】書き込み 【Z】応用編 例1:複数Excelファイル読み込んで、商品ごとの売上データを出力 ※ CSV への変換については、以下の関連記事を参照のこと。
Pandas ~ 基本編 / Excel => CSVに変換 ~
https://dk521123.hatenablog.com/entry/2021/01/25/000000
【0】使用上の注意
PandasでExcelを扱うには、「xlrd / xlwt」が必要な模様。 => なので、環境になければインストールする必要がある
【1】読み込み
import pandas as pd input_book = pd.ExcelFile('sample.xlsx') # sheet_namesメソッドでExcelブック内の # 各シートの名前をリストで取得できる sheet_name_list = input_book.sheet_names # DataFrameとして一つ目のsheetを読込 excel_data_frame = input_book.parse(sheet_name_list[0]) # 読み込んだシートの先頭2行を表示 print(excel_data_frame.head(2))
DataFrameとして読み込み場合
import pandas as pd data_frame = pd.read_excel( 'sample.xlsx', sheet_name='新しいシート')
【2】書き込み
import pandas as pd data_frame = pd.read_excel( 'sample.xlsx', sheet_name='新しいシート') # Excel出力 with pd.ExcelWriter('out_clone.xlsx') as writer: data_frame.to_excel(writer) print("Done")
【Z】応用編
例1:複数Excelファイル読み込んで、商品ごとの売上データを出力
import os import pandas as pd path = "./Excel/" excel_files = os.listdir(path) sales_df = pd.DataFrame() for excel_file in excel_files: full_path = path + excel_file print("full_path = {}".format(full_path)) data_frame = pd.read_excel(full_path) sales_df = pd.concat( [sales_df, data_frame], ignore_index=True) sales_by_channel = sales_df.groupby('商品名').sum() # 商品ごとの売上データを出力 print(sales_by_channel)
入力データ:2020年11月_売上.xlsx
商品名 売上 機械A 600,000 機械B 200,000 機械A 960,000 機械B 200,000
入力データ:2020年12月_売上.xlsx
商品名 売上 機械B 600,000 機械A 13,000
出力結果
full_path = ./Excel/2020年11月_売上.xlsx full_path = ./Excel/2020年12月_売上.xlsx 売上 商品名 機械A 1573000 機械B 1000000
関連記事
Pandas ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/10/22/014957
Pandas ~ 基本編 / Excel => CSVに変換 ~
https://dk521123.hatenablog.com/entry/2021/01/25/000000
Python で Excel を扱うには
https://dk521123.hatenablog.com/entry/2019/11/05/221010
Python ~ 基本編 / Excelを扱う・OpenPyXL ~
https://dk521123.hatenablog.com/entry/2020/08/27/000000
AWS Glue ~ Excelを扱うには / PySpark (Glue2.0) 版 ~
https://dk521123.hatenablog.com/entry/2020/10/09/144520
Pandas で Excel を扱った際のトラブル
https://dk521123.hatenablog.com/entry/2021/07/03/000000
Pandas ~ 基本編 / JSON編 ~
https://dk521123.hatenablog.com/entry/2022/02/16/000000