Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Pythonにおける集計とグループ化 | データ操作
Databricks基礎:初心者ガイド

Pythonにおける集計とグループ化

メニューを表示するにはスワイプしてください

Note
定義

集約は、複数のデータ行を合計、平均、件数などの単一の意味のある値に要約するプロセス。グループ化は、特定のカテゴリごとにこれらの要約を適用することを可能にし、たとえば各地域ごとの総売上を求める場合などに利用。

何百万もの生データ行を個別に確認する必要はほとんどない。通常は「全体像」—カテゴリごとの合計、平均、件数など—を知りたい場合が多い。Spark では、groupBy()agg() という2つの強力なメソッドを組み合わせることでこれを実現可能。

基本的な groupBy パターン

特定のカテゴリごとにデータを要約するには、まず groupBy() メソッドを使用する。これにより、Spark は同じ値(例:diamonds テーブルの「cut」など)を持つすべての行をグループにまとめる。ただし、グループ化だけでは何も起こらず、その後に集約処理を続ける必要がある。

# Group by cut and count how many rows are in each
count_df = df.groupBy("cut").count()

display(count_df)

sum()、avg()、max()による数値演算

データをグループ化した後、数値列に対して数学関数を適用可能。 アイテムタイプごとの合計利益を確認したい場合は、.sum()を使用。

# Total total_depth per cut category
total_depth = df.groupBy("cut").sum("x")

display(total_depth)

Sparkは自動的に列名をsum(x)に変更することに注意してください。次の章では、これらの名前をより専門的に見せる方法について学びます。

複数指標のためのagg()メソッド

複数の指標を同時に計算する必要がある場合—例えば、各地域ごとの平均利益と最大収益の両方を求める場合—.agg()(集約)メソッドを使用します。これは複雑なサマリーを作成するためのプロフェッショナルな標準手法です。

from pyspark.sql import functions as F

# Calculate multiple metrics at once
summary_df = df.groupBy("cut").agg(
    F.sum("x"),
    F.avg("y"),
    F.max("z")
)

display(summary_df)
Note
注記

これらの強力な数学的ツールにアクセスするために pyspark.sql.functions as F をインポート。

複数列によるグループ化

1つのカテゴリだけでなく、複数の列でグループ化が可能。リスト形式で列を指定することで、Cut ごとの Color Type など、より詳細なレベルでデータを確認可能。

multi_group_df = df.groupBy("cut", "color").sum("x")

display(multi_group_df)

結果のソート

集計データは、ソートすることでより読みやすくなります。集計の最後に .orderBy() メソッドを連結することで、最もパフォーマンスの高いカテゴリをリストの先頭に表示できます。

# Show highest profit categories first
sorted_df = summary_df.orderBy("sum(x)", ascending=False)

display(sorted_df)

1. カテゴリごとに結果を分けて sum()avg() を適用したい場合、事前に呼び出す必要があるメソッドはどれですか?

2. .sum() だけでなく .agg() メソッドを使う利点は何ですか?

question mark

カテゴリごとに結果を分けて sum()avg() を適用したい場合、事前に呼び出す必要があるメソッドはどれですか?

正しい答えを選んでください

question mark

.sum() だけでなく .agg() メソッドを使う利点は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  6

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  6
some-alt