❯ 2.3 アグリゲーション
⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺
推定完了時間
❲▹❳ 動画 9m36s
☷ コード資料 5m
以下の目的を達成するために、groupbyというデータフレームメソッドの柔軟性を紹介します。
平日の曜日ごとに、すべての航空会社のキャンセル便の数を見つける。
出発地と目的地ごとに、総フライト数、キャンセルされたフライトの数と割合、エアタイムの平均と分散を見つける。
フライトのデータセットを読み込んで、以下のように定義します。
グループ列: AIRLINE
アグリゲーション(集約)列: ARR_DELAY
集約関数: mean
groupbyメソッドにグループ列を配置し、集約列とその集約関数をペアにした辞書を使ってaggメソッドを呼び出します。
さて、フライトのデータセットを読み込んで、最初の質問に答えるために、次のように定義します。
グループ列: AIRLINE、WEEKDAY
集約列: CANCELLED
集約関数:sum
2番目の目的を達成するために、以下のように定義します。
グループ列: ORG_AIR, DEST_AIR
集約列: CANCELLED, AIR_TIME
集約関数:
CANCELLED:
sum, mean
AIR_TIME:
mean, var
より簡単に行うために、aggメソッドで辞書を使用して、特定の集計列を特定の集計関数にマッピングします。
問題:
各航空会社の長距離フライト数(3時間以上)の合計はいくつですか?
各航空会社の遅延便の合計の平方根はいくつですか?
pandasはそのための正確な集約関数を提供していないので、その関数を自分たちで定義することができます。
1番目の問題に対して
グループ列: AIRLINE
集約列: AIR_TIME
集約関数:
CANCELLED:
sumただし、値が180より大きい時のみ
2番目の問題に対して
グループ列: AIRLINE
集約列: AIR_TIME
集約関数:
ARR_DELAY:ただし
lenを二乗にします