Pandas DataFrame DataFrame.aggregate()関数

Minahil Noor 2023年1月30日
  1. pandas.DataFrame.aggregate() の構文
  2. コード例:Pandas DataFrame.aggregate()
  3. コード例:複数の関数を使用する DataFrame.aggregate()
  4. コード例:列を指定する DataFrame.aggregate()
Pandas DataFrame DataFrame.aggregate()関数

pandas.DataFrame.aggregate() 関数は、DataFrame の列または行を集計します。最も一般的に使用される集計関数は、minmax、および sum です。これらの集計関数により、DataFrame のサイズが縮小されます。

pandas.DataFrame.aggregate() の構文

DataFrame.aggregate(func, 戻り値, *args, **kwargs)

パラメーター

func 適用されるのは集計関数です。callable または callables のリスト、文字列または文字列のリスト、または dictionary にすることができます。
axis デフォルトでは 0。0 または 'index' の場合、関数は個々の列に適用されます。1 または 'columns' の場合、関数は個々の行に適用されます
*args これは位置引数です。
**kwargs キーワード引数です。

戻り値

この関数はスカラー、Series または DataFrame を返します。

  • 単一の関数が Series.agg() で呼び出された場合、スカラーを返します。
  • 単一の関数が DataFrame.agg() で呼び出された場合、Series を返します。
  • 複数の関数が DataFrame.agg() で呼び出された場合、DataFrame を返します。

コード例:Pandas DataFrame.aggregate()

DataFrame.agg()DataFrame.aggregate() のエイリアスです。単純さのため、エイリアスを使用する方が適切です。したがって、サンプルコードでは DataFrame.agg() を使用します。

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
                    'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                    'Obtained Marks': {0: 90, 1: 75, 2: 82, 3: 64, 4: 45}})
print(dataframe)

DataFrame の例を以下に示します。

   Attendance    Name Obtained Marks
0          60  Olivia            90
1         100    John            75
2          80   Laura            82
3          78     Ben            64
4          95   Kevin            45

最初に、単一の集計関数のみを使用して、DataFrame.agg() 関数をチェックします。

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45},
    }
)

dataframe1 = dataframe.agg("sum")
print(dataframe1)

出力:

Attendance                            413
Name              OliviaJohnLauraBenKevin
Obtained Marks                        356
dtype: object

集計関数 sum は、個々の列に適用されます。

整数型の列の場合、合計が生成されます。また、文字列型の列では、文字列を連結しています。dtype:objectSeries が返されることを示しています。

コード例:複数の関数を使用する DataFrame.aggregate()

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45},
    }
)

dataframe1 = dataframe.agg(["sum", "min"])
print(dataframe1)

出力:

     Attendance                     Name  Obtained Marks
sum         413  OliviaJohnLauraBenKevin             356
min          60                      Ben              45

集計関数 summin が個々の列に適用されます。

整数型の列の場合、min 関数は最小値を生成し、文字列型の列の場合、最小長の文字列を表示します。

コード例:列を指定する DataFrame.aggregate()

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45},
    }
)

dataframe1 = dataframe.agg({"Obtained Marks": "sum"})
print(dataframe1)

出力:

Obtained Marks    356
dtype: int64

単一の列の合計が返されます。dtype:int64 は、この関数が Series を返したことを示しています。

1つの列に複数の関数を適用することもできます。

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45},
    }
)
dataframe1 = dataframe.agg({"Obtained Marks": ["sum", "max"]})
print(dataframe1)

出力:

     Obtained Marks
sum             356
max              90

関連記事 - Pandas DataFrame