agg():複数の集約値を一括で計算

agg()では、複数の集約値を一括で計算できます。次のように、集約に使う関数名のリストを渡します。

df.agg(関数名のリスト)

agg()の戻り値は下記のようになります。

DataFrame.agg()Series.agg()
引数が関数名Seriesスカラー
引数が関数名のリストDataFrameSeries

※ 上表は、agg()の引数で指定する関数が、min()のようにスカラーを返す関数の場合です。

具体例で確認しましょう。前問と同じdfを使います。

TaskNameWorkTimeLimitDate
0資料ABC確認1.52022-04-11
1資料XYZ確認0.52022-04-01
2報告書まとめ1.52022-04-05
3本社ミーティング4.02022-04-04
4出張報告書の提出1.02022-04-05

WorkTimeの最小値と最大値は、以下のようになります。

df.WorkTime.agg(["min", "max"])

実行結果

min    0.5
max    4.0
Name: WorkTime, dtype: float64

演習

タスク一覧を読み込みます。In [1]:

import pandas as pd

df = pd.read_csv("dataset/task.csv", encoding="utf-8")
df

Out[1]:

TaskNameWorkTimeLimitDate
0資料ABC確認1.52022/04/11
1資料XYZ確認0.52022/04/01
2報告書まとめ1.52022/04/05
3本社ミーティング4.02022/04/04
4出張報告書の提出1.02022/04/05

DataFrameの列ごとに最小値と最大値を計算します。引数には[“min”, “max”]を指定します。 結果はDataFrameになり、1行目が最小値の行に、2行目が最大値の行になります。In [2]:

df.agg(["min", "max"])

Out[2]:

TaskNameWorkTimeLimitDate
min出張報告書の提出0.52022/04/01
max資料XYZ確認4.02022/04/11

WorkTimeの最小値と最大値を計算します。引数は同じです。 結果はSeriesになり、1つ目が最小値に、2つ目が最大値になります。In [3]:

df.WorkTime.agg(["min", "max"])

Out[3]:

min    0.5
max    4.0
Name: WorkTime, dtype: float64

補足

agg()では関数名のリストだけではなく、関数のリストも指定できます。実際に確認してみましょう。
下記を実行するとdf.agg(["min", "max"])と同じ結果になります。

df.agg([pd.DataFrame.min, pd.DataFrame.max])

また、下記を実行するとdf.WorkTime.agg(["min", "max"])と同じ結果になります。

df.WorkTime.agg([pd.Series.min, pd.Ser

コメント

タイトルとURLをコピーしました