データエンジニアリングまとめ・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アソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。

この記事について

データサイエンティスト検定スタディが作成した教材です。運営について・記事の作り方

試験についてはこちらをご覧ください: データサイエンティスト協会 公式サイト

この記事を共有