複数のエクセルファイルを縦に結合してまとめたい!
そんなお悩みを、Python歴3年の私ができるだけわかりやすく解説し、解決に導きます。
実行見本
全コード
ひとまず全コードを網羅します。解説は後ほど行います。
import pandas as pd
df_1 = pd.read_excel('input_1.xlsx')
df_2 = pd.read_excel('input_2.xlsx')
#df_2 = df_2.rename(columns = {'好物' : '好きな食べ物'})
df_all = pd.concat([df_1, df_2], axis = 0)
df_all.to_excel('output.xlsx', index = None)
df_all = pd.concat([df_1, df_2], axis = 0)
事前準備
- pandasのインストール
エクセルファイルの読み込みや結合をする際に「pandas」が必要になります。
pandasのインストール方法
pandasを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install pandas
※pandasを使用したことがある場合は、このインストール作業は不要です。
解説
concat
>>8.df_all = pd.concat([df_1, df_2], axis = 0)
読み込んだ複数のエクセルファイルを、この一文で結合できます。
【 pd.concat([変数1, 変数2], axis = 0) 】
結合順は、変数1の下に変数2という具合です。
3つ以上ある場合も「,(カンマ)」で区切って書き続ければ結合できます。
pd.concat([変数1, 変数2, 変数3, 変数4,・・・], axis = 0)
「axis」とは?
「axis」はどの方向に結合するのかを指定します。
今回のように縦方向に結合する場合は「axis = 0」。横方向なら「axis = 1」と記述します。
縦方向の「axis = 0」は省略することもできます。
pd.concat([変数1, 変数2]) → 縦方向に結合
列の名前が微妙に違ってズレてしまう時は
結合する表の列名が違う場合は、画像のようにズレが発生してしまいます。
そんな時は、列名を変えてからconcatで結合すると、ズレを修正できます。
>>6.#df_2 = df_2.rename(columns = {‘好物’ : ‘好きな食べ物’})
列名の変更方法は、下記の記事で解説しております。
うまく動作しない時
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
まとめ
PythonのDataFrameでエクセルファイルを縦に結合する方法を解説いたしました。
月間や年間データをまとめる際に便利ですので、ぜひご活用ください。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!