pandasでふぞろいなデータを分析資産に変える
Python in Excel実務入門:Excelデータ分析の新パラダイム 第2回
ダウンロード サンプルファイル (17.1 KB)
groupby/mergeで集計と結合
整えたデータは、最後に「集計」と「結合」で分析の形にまとめます。ピボットテーブルの延長では表現しづらい多軸・多段の集計をgroupbyで、複数の表の突き合わせをmergeで行う方法を確認します。
前節でdfを上書きしているため、まず第1節の売上表(商品カテゴリ・地域・売上・数量)を改めて読み込みます。
グループ化(groupby)
groupbyは、指定した列の値でまとめて集計する操作で、ExcelのピボットテーブルやSUMIFSに当たります。まず地域ごとの売上合計を求めてみましょう。
df = xl("A1:D7", headers=True)
df.groupby("地域")["売上"].sum()
実行すると、地域ごとに売上を合計した結果が得られます。
これは、ピボットテーブルで行に「地域」、値に「売上の合計」を置いた状態に当たります。groupbyの強みは、ここから軸や指標を増やすのが容易な点にあります。
例えば「地域×商品カテゴリ」の2軸で、売上と数量をまとめて集計してみましょう。
df.groupby(["地域", "商品カテゴリ"]).agg({"売上": "sum", "数量": "sum"})
複数の軸はリストで渡し、aggで指標ごとに集計方法を指定します。「部門×月×指標」のような多次元集計も同じ書き方で組み立てられ、df_g[df_g["売上"] >= 100000]のような条件を重ねて絞り込むこともできます。画面操作で作るピボットテーブルと違い、読めるコードとして残り、翌月のデータにも同じ手順を適用できます。
複数テーブルの結合(merge)
mergeとは、共通する列(キー)を突き合わせて、複数の表を1つにまとめる操作です。ExcelのVLOOKUPやXLOOKUPが担ってきた役割に当たります。例として、商品カテゴリごとの担当部門をまとめた分類マスタを、同じシートの別範囲(例:F1:G4)に用意します。
| 商品カテゴリ | 担当部門 |
| スキンケア | スキンケア事業部 |
| メイク | メイク事業部 |
| ヘアケア | ヘアケア事業部 |
このマスタを、商品カテゴリをキーにして売上表へ結合します。
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データ分析の新パラダイム連載記事一覧
-
- scikit-learnで始めるExcel版機械学習。予測分析と評価
- Python in Excelのmatplotlib/seabornで、意思決定に役立つデ...
- pandasでふぞろいなデータを分析資産に変える
- この記事の著者
-
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編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
