SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Python in Excel実務入門:Excelデータ分析の新パラダイム

pandasでふぞろいなデータを分析資産に変える

Python in Excel実務入門:Excelデータ分析の新パラダイム 第2回

groupby/mergeで集計と結合

 整えたデータは、最後に「集計」と「結合」で分析の形にまとめます。ピボットテーブルの延長では表現しづらい多軸・多段の集計をgroupbyで、複数の表の突き合わせをmergeで行う方法を確認します。

 前節でdfを上書きしているため、まず第1節の売上表(商品カテゴリ・地域・売上・数量)を改めて読み込みます。

グループ化(groupby)

 groupbyは、指定した列の値でまとめて集計する操作で、ExcelのピボットテーブルやSUMIFSに当たります。まず地域ごとの売上合計を求めてみましょう。

python
df = xl("A1:D7", headers=True)
df.groupby("地域")["売上"].sum()

 実行すると、地域ごとに売上を合計した結果が得られます。

地域ごとに売上を合計した結果
地域ごとに売上を合計した結果

 これは、ピボットテーブルで行に「地域」、値に「売上の合計」を置いた状態に当たります。groupbyの強みは、ここから軸や指標を増やすのが容易な点にあります。

 例えば「地域×商品カテゴリ」の2軸で、売上と数量をまとめて集計してみましょう。

python
df.groupby(["地域", "商品カテゴリ"]).agg({"売上": "sum", "数量": "sum"})
地域と商品カテゴリの2軸で売上と数量を集計した結果
地域と商品カテゴリの2軸で売上と数量を集計した結果

 複数の軸はリストで渡し、aggで指標ごとに集計方法を指定します。「部門×月×指標」のような多次元集計も同じ書き方で組み立てられ、df_g[df_g["売上"] >= 100000]のような条件を重ねて絞り込むこともできます。画面操作で作るピボットテーブルと違い、読めるコードとして残り、翌月のデータにも同じ手順を適用できます。

複数テーブルの結合(merge)

 mergeとは、共通する列(キー)を突き合わせて、複数の表を1つにまとめる操作です。ExcelのVLOOKUPやXLOOKUPが担ってきた役割に当たります。例として、商品カテゴリごとの担当部門をまとめた分類マスタを、同じシートの別範囲(例:F1:G4)に用意します。

表:商品カテゴリと担当部門の分類マスタ(F1:G4)
商品カテゴリ 担当部門
スキンケア スキンケア事業部
メイク メイク事業部
ヘアケア ヘアケア事業部

 このマスタを、商品カテゴリをキーにして売上表へ結合します。

python
master = xl("F1:G4", headers=True)
pd.merge(df, master, on="商品カテゴリ", how="left")
商品カテゴリをキーに担当部門を結合した結果
商品カテゴリをキーに担当部門を結合した結果

 onで結合キー、how="left"で左側の表(ここでは売上表)を軸にすることを指定します。VLOOKUPと違い、on=["地域", "商品カテゴリ"]のように複数列を組み合わせた複合キーでも一度に突き合わせられます。

 このように、groupbyで多軸の集計を、mergeで表どうしの結合を、いずれも短いコードとして残せます。ピボットテーブルやVLOOKUPの手順がブックに埋もれてしまう状態から、誰が見ても同じ結果を再現できる形へと、分析の土台が変わってきます。

まとめ

 本記事では、xl()で取り込んだ表を行ラベルと列名のまとまりとして捉えるDataFrameという考え方を土台に、全角半角・空白・欠損へのクレンジングと欠損値処理、groupbyによる多軸集計とmergeによる表の突き合わせまでを紹介しました。

 いずれも、「セルを1つずつ触る」作業から「読めるコードを手順として残す」への切り替えがポイントです。前処理をコードによる再現可能な型にしておけば、属人的だった作業を誰もが同じ結果にたどり着ける資産に変えられます。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Python in Excel実務入門:Excelデータ分析の新パラダイム連載記事一覧
この記事の著者

WINGSプロジェクト 西 潤史郎(ニシ ジュンシロウ)

WINGSプロジェクト について>有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 山田...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/29058 2026/08/03 08:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー