Python pandasで効率的なデータ処理!agg()とaggregate()の使い方

Pythonのpandasライブラリでデータ処理をする際に、agg()やaggregate()を使うことで複数の処理を一度に適用できる方法を紹介します。

Pythonのpandasでデータ処理をするとき、複数の処理を一度に適用したいと思っています。それは可能でしょうか?

pandasのagg()やaggregate()を使うことで複数の処理を効率的に適用することができますよ。

目次

agg()とaggregate()とは?

andasのagg()とaggregate()は、データフレームやシリーズオブジェクトに対して、複数の処理を一度に適用することができる関数です。これらの関数を使うことで、1つずつ処理するのではなく、複数の処理を一括して行うことができます。

agg()とaggregate()の違いは、引数の指定方法にありますが、基本的な使い方は同じです。引数funcには、適用する関数を指定し、axis引数は処理を適用する軸を指定します。

agg()とaggregate()の使い方

agg()とaggregate()の基本的な使い方は、以下の通りです。

  • agg(func, axis=0, *args, **kwargs)
  • aggregate(func, axis=0, *args, **kwargs)

引数funcには、適用する関数を指定します。axis引数は処理を適用する軸を指定します。axis=0は列方向、axis=1は行方向を表します。*argsと**kwargsは、関数に引数を渡す際に使用する可変長引数です。

例えば、以下のように書くことで、列方向に平均値を求めることができます。

df.agg(‘mean’, axis=0)

複数の処理を一度に適用する方法

複数の処理を一度に適用するには、agg()やaggregate()に辞書型を渡して、列ごとに適用する関数を指定します。

例えば、以下のように書くことで、col1の平均値と最大値、col2の合計値と件数を同時に求めることができます。

df.agg({‘col1’: [‘mean’, ‘max’], ‘col2’: [‘sum’, ‘count’]})

この場合、’col1’にはmean()関数とmax()関数が、’col2’にはsum()関数とcount()関数が適用されます。複数の処理を適用する場合、列ごとに適用する関数をリストで指定することができます。また、異なる列に対して異なる処理を適用することもできます。ただし、複数の処理を一度に適用する場合、関数の引数を正しく指定することが重要です。

サンプルプログラムを使った解説

以下は、agg()とaggregate()を使用したサンプルプログラムです。このプログラムでは、irisデータセットのsepal length, sepal width, petal length, petal width列に対して、平均値、最大値、最小値、中央値、標準偏差を同時に求めています。

import pandas as pd
from sklearn.datasets import load_iris

iris = load_iris()
df = pd.DataFrame(data=iris.data, columns=iris.feature_names)

# agg()による複数の処理を一度に適用する方法
result_agg = df.agg(['mean', 'max', 'min', 'median', 'std'])
print(result_agg)

# aggregate()による複数の処理を一度に適用する方法
result_aggregate = df.aggregate(['mean', 'max', 'min', 'median', 'std'])
print(result_aggregate)

このプログラムでは、agg()とaggregate()の両方を使用しています。agg()では、dfに対してmean(), max(), min(), median(), std()関数を適用しています。また、aggregate()でも同じ処理を行っています。両者の結果は同じであり、どちらを使用しても同じように処理できます。

実行結果は以下のようになります。

        sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
mean             5.843333          3.057333           3.758000          1.199333
max              7.900000          4.400000           6.900000          2.500000
min              4.300000          2.000000           1.000000          0.100000
median           5.800000          3.000000           4.350000          1.300000
std              0.828066          0.435866           1.765298          0.762238

        sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
mean             5.843333          3.057333           3.758000          1.199333
max              7.900000          4.400000           6.900000          2.500000
min              4.300000          2.000000           1.000000          0.100000
median           5.800000          3.000000           4.350000          1.300000
std              0.828066          0.435866           1.765298          0.762238

以上のように、agg()やaggregate()を使用することで、複数の処理を一度に適用することができます。

リスキリングでキャリアアップしてみませんか?

リスキリング(学び直し)は、経済産業省が推奨しており、

今だけ、最大70%のキャッシュバックを受けることができます。

リスキリング 給付金が出るスクール紹介

最大70%の給付金が出るおすすめのプログラミングスクール!

国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!

興味のある方はすぐに確認しましょう。

まとめ

Pythonのpandasライブラリでデータ処理をする際に、agg()やaggregate()を使うことで複数の処理を一度に適用できる方法を解説しました。

  • pandasのagg()とaggregate()は、複数の処理を一度に適用することができる関数です。
  • 適用する関数を指定する引数funcには、関数名を文字列で指定するか、関数オブジェクトを渡します。
  • axis引数は処理を適用する軸を指定します。
  • 複数の処理を一度に適用するには、辞書型を渡して列ごとに適用する関数を指定します。
  • 複数の処理を適用する場合、関数の引数を正しく指定することが重要です。

サンプルプログラムを参考に、agg()とaggregate()の使い方がよく分かりました。複数の処理を一度に適用することができるのはとても便利ですね。ありがとうございました。

agg()やaggregate()を使うことで、pandasを使ったデータ処理が効率的に行えます。複数の処理を一度に適用することで、コードの簡略化や処理速度の向上が期待できます。

しかし、関数の引数を正しく指定することが重要です。また、適用する関数を文字列で指定する場合は、関数名を正確に指定することが必要です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次