セクション 4. 章 4
single
高度なグループ化
メニューを表示するにはスワイプしてください
.groupby() メソッドについてさらに理解を深めましょう。ご存知の通り、.agg() メソッドを使用できます。この関数の主な利点は柔軟性にあり、複数かつ異なる集約処理を複数の列に同時に適用でき、すっきりとしたサマリーテーブルを返します。
以下の例を見てください。フライトを 'Airline' でグループ化しました。その後、.agg() を使って、('Delay' 列を用いて)フライトの総数をカウントし、同時に('Length' 列を用いて)最短および最長のフライト時間を求めています。とても便利ですね。
1234import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/plane', index_col = 0) data_flights = data.groupby('Airline').agg({'Delay': 'count', 'Length': ['min', 'max']}) print(data_flights.head(10))
解説:
.agg({'Delay': 'count', 'Length': ['min', 'max']})
.agg(): 「aggregate(集約)」の略。このメソッドはグループ化されたデータを、指定したルールに基づいて要約統計量にまとめます。{}: Pythonの辞書を使い、特定の列に特定の処理を割り当てます。キーが対象の列名、値が適用する関数です。'Delay': 'count': 各グループの'Delay'列にカウント関数を適用します。'count'と書かずに文字列エイリアスcount()を渡す点に注意してください。pandasはこれらの標準的な統計関数名を認識します。'Length': ['min', 'max']: 1つの列に複数の関数を適用したい場合、関数名をリスト[]に入れます。ここでは'Length'列の最小値と最大値を計算しています。
複数の関数を適用したため、結果のDataFrameでは自動的に階層的(MultiIndex)な列が作成されます。上位レベルに Length が表示され、その下に min と max がきれいに分類されます。
タスク
スワイプしてコーディングを開始
出発空港ごと、さらに到着空港ごとに、平均および最大遅延時間を調査し、またフライトの中央値の長さも確認します。次のアルゴリズムに従ってください。
データのグループ化:
- データセット
.groupby()に対してdataメソッドを適用します; .groupby()メソッド内には、カラム'AirportFrom'と'AirportTo'を指定します(順序が重要です);.agg()メソッドを使用して、集約値を計算します:カラム'Time'の平均値と最大値、カラム'Length'の中央値を算出します。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 4. 章 4
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください