実現したいこと
pandasを使って、複数のExcelファイルから、複数のシートを読み込む方法が知りたいです。
例えば
4月ファイルのAシート
5月ファイルのAシート
6月ファイルのAシート
・・・
をまとめてAというデータフレームにしたいです。
読み込むシートは複数あります。
4月ファイルのBシート
5月ファイルのBシート
6月ファイルのBシート
・・・
も同様にBというデータフレームとして読み込みたいです。
###試したこと
pandasで複数のExcelファイルを読む方法は、ウェブサイトで拝見しました。
https://fastclassinfo.com/entry/python_excel_combine/
シート名を指定して、特定のシートを読み込む方法も出来ましたが、これらをどういうふうに組み合わせて書けばいいのでしょうか。まだ良い方法にたどり着けていません。
また、pandasではなくて、openpyxlを使い、シート名毎にまとめて1つのExcelファイルに保存することは出来ました(書籍を参考にしました)。でも、あとに続く処理をpandasでやりたいので、これをpandasで出来れば便利なのに!と思っています。
python
1import openpyxl 2from pathlib import Path 3import glob 4 5#同ファイルにあるExcelフォルダ内の全てのファイルを対象にする 6wb_list=[] 7for file in Path("Excel").glob("*.xlsx"): 8 wb=openpyxl.load_workbook(file) 9 wb_list.append(wb) 10 11#保存先の新しいブック 12wb_new=openpyxl.Workbook() 13 14#1つめのブックからシート名のリストを取得 15sheet_names=wb_list[0].sheetnames 16 17#シート名ごとに処理 18for sheet_name in sheet_names: 19 ws_new=wb_new.create_sheet(sheet_name) 20 21 row_list=[] 22 23 for wb in wb_list: 24 ws=wb[sheet_name] 25 26 for row in ws.iter_rows(min_row=2): 27 if row[0].value is None: 28 break 29 value_list=[] 30 for c in row: 31 value_list.append(c.value) 32 row_list.append(value_list) 33 34 row_num=1 35 36 for row in row_list: 37 ws_new.append(row) 38 39wb_new.save("シート毎にまとめたエクセル.xlsx")
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/23 06:56
2021/12/23 08:12
2021/12/24 00:43