データエンジニアリングまとめ・SQL/Python読解対策

DE力カテゴリ全15記事の総まとめ。SQL・Pandas のコード読解パターンを一気に振り返ります。

DEカテゴリの総まとめ。SQL・Python・データ基盤の試験頻出パターンを一気に振り返ります。

白峰 リリ(笑い) 白峰 リリ

DE力って、要はSQLとPythonとデータ基盤、この3つを押さえりゃいいってこと?

神楽 モニカ 先生(笑顔) 神楽 モニカ 先生

その通り。 DS検定★ では SQLコード読解とPython(Pandas/NumPy)コード読解が必出。 文法を覚えるよりパターンを覚えるのが効率的よ。

紅林 かえで(普段) 紅林 かえで

SQL頻出パターンは(1)SELECT+WHERE+ORDER BY、(2)GROUP BY+集計関数、(3)JOINとNULL扱い、(4)CTEとサブクエリ、(5)ウィンドウ関数(ROW_NUMBER/RANK/LAG/LEAD)、の5つ。

藍沢 しずく(普段) 藍沢 しずく

Pythonは?

紅林 かえで(普段) 紅林 かえで

Pandas頻出は(1)DataFrame/Seriesとloc/iloc、(2)groupby・agg、(3)merge・concat、(4)isna・fillna・dropna、(5)applyとリスト内包表記。

白峰 リリ(普段) 白峰 リリ

コード読解問題のコツってある?

-- DS検定★コード読解の典型問題
WITH monthly AS (
  SELECT
    DATE_TRUNC('month', ordered_at) AS month,
    customer_id,
    SUM(amount) AS monthly_amount
  FROM orders
  GROUP BY 1, 2
)
SELECT
  month,
  customer_id,
  monthly_amount,
  RANK() OVER (
    PARTITION BY month
    ORDER BY monthly_amount DESC
  ) AS rank_in_month
FROM monthly
WHERE monthly_amount > 0;
神楽 モニカ 先生(普段) 神楽 モニカ 先生

このクエリは『月ごと・顧客ごとの売上合計を計算し、各月内の売上ランキングをつける』処理。 CTE で集計を準備し、その上でウィンドウ関数で順位付け、という典型2段階。

紅林 かえで(普段) 紅林 かえで

Pythonでも同じ処理は書けるけれど、データベース側で完結させる方が圧倒的に高速。 役割分担を意識して。

藍沢 しずく(普段) 藍沢 しずく

コード読解、慣れれば一目で分かるようになりますかぁ?

神楽 モニカ 先生(普段) 神楽 モニカ 先生

なるわよ。 コツは『1行ずつ追わず、ブロックごとに意味をつかむ』こと。 CTEなら『これは何を準備しているか』、メイン部分なら『何を最終結果として取り出しているか』。

白峰 リリ(笑い) 白峰 リリ

メソッドチェーンも、最初はゴチャっと見えるけど、慣れると一気に読めるね!

# Pandas での同等処理
monthly = (
    orders
    .assign(month=lambda x: x['ordered_at'].dt.to_period('M'))
    .groupby(['month', 'customer_id'])['amount']
    .sum()
    .reset_index(name='monthly_amount')
)
monthly['rank_in_month'] = (
    monthly.groupby('month')['monthly_amount']
           .rank(method='dense', ascending=False)
)
result = monthly[monthly['monthly_amount'] > 0]
紅林 かえで(普段) 紅林 かえで

DS検定対策のチェックリスト: (1)SQLとPandasで同じ操作が書けるか、(2)ウィンドウ関数を読めるか、(3)欠損値処理を選べるか、(4)エンコーディングと標準化の使い分け、(5)外れ値検出の閾値計算。

神楽 モニカ 先生(笑顔) 神楽 モニカ 先生

次は『AI社会実装・データリテラシー』。 統計・機械学習・データ基盤を経て、社会実装の話に入るわよ。

藍沢 しずく(笑顔) 藍沢 しずく

がんばりますぅ♪

確認クイズ

DS検定★ のコード読解問題に最も効果的な学習法はどれか。

  1. 公式リファレンスを暗記する
  2. 1行ずつ詳細に読み解く
  3. 頻出パターン(GROUP BY+集計、ウィンドウ関数、merge等)を集中的に学ぶ
  4. 全てのSQL関数を覚える
こたえを見る

正解: 3. 頻出パターン(GROUP BY+集計、ウィンドウ関数、merge等)を集中的に学ぶ

頻出パターンを集中的に学ぶのが最効率。 DS検定はパターン化されており、『GROUP BY+集計』『ウィンドウ関数』『merge』などの典型コードを多く読むことで、本番で素早く意味をつかめるようになります。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。