第3回まで無料

データ分析実務入門コース

問いの立て方と指標の定義から、SQL の集計・JOIN・ウィンドウ関数、pandas での前処理、matplotlib での可視化、コホート・ファネル・RFM・A/B テストまで。全30レッスンで「データを見て意思決定に繋げる」ところまで進みます。集計結果はすべて、架空 EC ショップの固定データで実際に動かした値を載せています。

カリキュラム

全30レッスンを6つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ SQL・pandas・matplotlib を使う回はブラウザ内で実行できません。第1回で用意する Python 3.14 の仮想環境(SQL は標準ライブラリの sqlite3)で試してください。標準ライブラリだけで済む小さな計算は、その場で実行できます。

Chapter 1 — 分析の前に決めること(第1〜4回)

クエリを書く前に、問いを指標・対象・期間に分け、指標をコードで定義し、どのテーブルに何行あるかの地図を持ちます。最後は、キャンセルの混入や平均の罠など、正しいクエリでも結論を狂わせる落とし穴を整理します。

Chapter 2 — SQL で取り出す(第5〜11回)

集約関数と GROUP BY で全体と内訳をつかみ、JOIN・サブクエリ・ウィンドウ関数・日付の丸めで欲しい形に取り出します。最後は、売上・注文数・AOV・トップカテゴリを 1 つのサマリにまとめます。

5

集約関数で全体を 1 行に要約する

COUNT・SUM・AVG・MIN・MAX で商品テーブルを 1 行に要約する。COUNT(*) と COUNT(列) の違いと、AVG が NULL を分母から外す点。

🔒 ベーシック
6

GROUP BY と条件集計で内訳を出す

GROUP BY でカテゴリ別の売上を、条件集計で完了とキャンセルの件数を出す。SELECT に書ける列の制約と、WHERE と HAVING の違い。

🔒 ベーシック
7

JOIN で注文・明細・商品をつなぐ

数量・価格・状態が別々のテーブルにあるとき、JOIN でつないで注文ごとの金額を出す。INNER と LEFT の違いと、JOIN で行が増える粒度の罠。

🔒 ベーシック
8

サブクエリと CTE で集計結果を条件に使う

平均より多く注文した顧客を、サブクエリで数える。NOT IN で一度も売れていない商品を探し、入れ子を CTE で読みやすくする。

🔒 ベーシック
9

ウィンドウ関数で累計を横に添える

GROUP BY と違い、行を残したまま集計を添えるのがウィンドウ関数。SUM() OVER で月次売上の累計を出し、順位・移動平均・前月比の書き方を押さえる。

🔒 ベーシック
10

日付を年月に丸めて月次で集計する

strftime で日付を年月に丸めて月次売上を出し、4 月のピークを見つける。文字列比較・タイムゾーン・期間の閉じ方と、売上 0 の月が消える問題。

🔒 ベーシック
11

【実践】売上サマリを SQL で組み立てる

集約・JOIN・除外条件を組み合わせ、売上・注文数・AOV・トップカテゴリを 1 つのサマリにまとめる。JOIN 後の注文数を COUNT(DISTINCT) で数える理由と、SQL と pandas の分担。

🔒 ベーシック

Chapter 3 — 整える(第12〜17回)

SQL で取り出したデータを pandas に読み込み、欠損・外れ値・結合・ピボットで分析できる形に整えます。最後は、その手順を関数にまとめ、何度実行しても同じ結果になる前処理にします。

12

SQL の結果を pandas に読み込む

read_sql でクエリ結果を DataFrame にし、まず shape で形を確かめる。日付を parse_dates で日付型にする理由と、読み込んだら最初に打つ 4 つの確認。

🔒 ベーシック
13

欠損値を落とすか、埋めるか

isna・dropna・fillna で欠損を数え、落とし、埋める。どれを選ぶかは欠けた理由で決まる。0 埋めが平均を狂わせる例と、母数の変化を記録する理由。

🔒 ベーシック
14

IQR 法で外れ値を見つける

注文金額の外れ値を IQR 法で機械的に見つける。中央値 5,100 円・外れ値 2 件を確かめ、見つけた外れ値を即消さずに正体を確かめる理由。

🔒 ベーシック
15

merge で結合し、SQL の JOIN と突き合わせる

pandas の merge で注文・明細・商品をつなぎ、カテゴリ別売上が第6回の SQL と同じ数字になることを確かめる。how の指定、suffix、1 対多で行が増える点。

🔒 ベーシック
16

groupby と pivot_table で行×列の表を作る

1 軸の集計は groupby、カテゴリ×月のクロス表は pivot_table。家電の月別合計が総売上 657,500 円と一致することを確かめ、aggfunc の既定が平均である罠を避ける。

🔒 ベーシック
17

前処理を関数にまとめて再現できるようにする

キャンセル除外と年月列の追加を 1 つの関数にまとめ、何度実行しても同じ結果になることを assert_frame_equal で確かめる。元データを壊さない .copy() と種の固定。

🔒 ベーシック

Chapter 4 — 見せる(第18〜22回)

問いに合うグラフを選び、matplotlib で折れ線・棒・ヒストグラムを描いて、2 つの図を並べたダッシュボードにまとめます。最後は、縦軸の切り方で差を誇張するなど、誤解を招く図の作り方と避け方を見ます。

Chapter 5 — 定番の分析(第23〜27回)

コホート・ファネル・RFM・時系列の傾向・A/B テストという、実務で繰り返し使う分析の型を、同じ EC データで試します。最後は、2 案の差が偶然かどうかを検定で見分け、「増えたから採用」を避けます。

23

登録月コホートで世代差を見る

顧客を登録月でグループに分け、コホートごとの人数と購入率を出す。全体平均では見えない世代差と、日の浅いコホートを同じ経過期間で比べる理由。

🔒 ベーシック
24

ファネルでいちばん落ちる段階を見つける

閲覧→カート→購入手続き→購入の段階ごとに人数を数え、100→62→40→32 と減る中でいちばん離脱の大きい段階を見つける。段階間の残存率と最初からの通過率の違い。

🔒 ベーシック
25

RFM で顧客を頻度と金額で分ける

Recency・Frequency・Monetary の 3 軸で顧客を分ける。F と M を計算し、購入のある顧客 81 人のうち金額が中央値以上の優良顧客 41 人を数える。セグメントごとの施策と線引きの基準。

🔒 ベーシック
26

移動平均で時系列の傾向を見る

月次売上を rolling(3).mean() でならし、単月の上下でなく傾向を見る。ピークの 4 月と直近 3 か月の移動平均 102,150 円を確かめ、トレンド・季節性・ノイズを分けて考える。

🔒 ベーシック
27

A/B テストの差が偶然かを検定で確かめる

2 案の転換率の差を z 検定で確かめる。10% と 13% は z=2.103 で有意、10% と 10.5% は有意でないことを実行して確かめ、サンプル数・のぞき見・有意と重要の違いを押さえる。

🔒 ベーシック

Chapter 6 — 伝える(第28〜30回)

分析結果を、結論 → 根拠 → 次の一歩の順に組んだレポートにし、示唆で止めずに推奨まで書いて意思決定に繋げます。最後は、取り出しから書き出しまでを 1 つのパイプラインにまとめ、定期的に自動で回せる形にします。

全30レッスンを終えたら、次は同じ pandas の上で予測モデルを作る Python & 機械学習 入門 へ。メンバーシップで全コースが解放されます。