Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 複雑なグルーピング | データの集約
Pandasによるデータ整形
セクション 4.  3
single

single

book複雑なグルーピング

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

グループ化の際に、組み込みの pandas 関数(例えば .mean().min())だけでは満足できない場合があります。

'Length' 列を見てください。ここにはフライトの所要時間(分)が記録されています。同じ 'Flight' 列の値、次に 'Airline' 列の値ごとに、最大時間(時間単位)を計算したいとします。そのためには、各グループキーごとに 'Length' 列の最大値を計算し、それを 60 で割ります。以下の例と説明を参照してください。

1234
import 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[['Flight', 'Airline', 'Length']].groupby(['Flight', 'Airline']).apply(lambda x: x['Length'].max()/60) print(data_flights.head(10))
copy

解説:

前の章の例を少し複雑にしましたが、データのグループ化については同じです。ここでは .apply() メソッドに注目します。

.apply(lambda x: x['Length'].max()/60)
  • .apply() - 必要な列に特定の関数を適用するためのメソッド。
  • lambda 関数では、x が引数であり、x['Length'].max()/60 が式です。この関数は各グループキーごとに最大値を求め、その集計値を 60 で割ります。
タスク

スワイプしてコーディングを開始

ここでの課題は、空港、航空会社、曜日を考慮してフライト時間を分析することです。 データをグループ化し、出発空港、航空会社、曜日の各ユニークな組み合わせごとに、最小の合計フライト時間'Length''Time'の合計)を求めます。

次のアルゴリズムに従ってください:

  1. カラムリスト 'AirportFrom', 'Airline', 'DayOfWeek', 'Time', 'Length'(この順番)を変数 columns に格納します。
  2. 角括弧記法(data)を使って、data[columns] からこれらのカラムを抽出します。
  3. データセットを 'AirportFrom', 'Airline', 'DayOfWeek'(この順番)でグループ化します。
  4. .groupby() メソッド内で .apply() 関数を使い、各グループごとに 'Length''Time' カラムの合計を計算し、その合計の最小値を求めます。
  5. 結果を data_flights という変数に代入します。
  6. 得られたSeriesの最初の10行を .head(10) で出力します。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

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

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

セクション 4.  3
single

single

AIに質問する

expand

AIに質問する

ChatGPT

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

some-alt