Pandas で複数列の GroupBy と Aggregate を行う
Pandas ライブラリは、Python の強力なデータ分析ライブラリです。Python の Pandas を使用して、データフレームに対してさまざまな種類の操作を実行できます。
groupby()
は、特定の基準に基づいてデータを複数のグループに分割するメソッドです。その後、グループ化されたデータに対して特定の操作を実行できます。
Pandas Python の複数の列に groupby()
および aggregate()
関数を適用する
複数の列のデータをグループ化し、いくつかの aggregate()
メソッドを適用する必要がある場合があります。aggregate()
メソッドは、複数の行の値を組み合わせて単一の値を返すメソッドです。たとえば、count()
、size()
、mean()
、sum()
、mean()
など
次のコードには、いくつかの列の冗長な値を含む学生のデータがあります。生徒の名前
とセクション
に基づいてデータをグループ化して合計点数を取得する場合は、名前とセクションに従ってデータをグループ化し、aggregate()
メソッドを使用して合計点数を計算します。
返された結果を保存して表示しました。
サンプルコード:
# Python 3.x
import pandas as pd
student = {
"Name": ["Jhon", "Alia", "Jhon", "Alia", "Sam", "Smith", "Sam", "Smith"],
"Section": ["A", "A", "A", "A", "B", "B", "B", "B"],
"Course": ["Java", "Java", "Dart", "Dart", "Java", "Java", "Dart", "Dart"],
"Marks": [70, 80, 90, 60, 80, 90, 50, 80],
}
df = pd.DataFrame(student)
display(df)
result = df.groupby(["Name", "Section"]).aggregate("sum")
display(result)
出力:
一度に複数の集計
操作を実行することもできます。操作名のリストを aggregate()
メソッドに渡します。
ここでは、操作名のリストを渡すことにより、aggregate()
メソッドを使用して、学生の平均点と合計点を一度に計算しました。
サンプルコード:
# Python 3.x
import pandas as pd
student = {
"Name": ["Jhon", "Alia", "Jhon", "Alia", "Sam", "Smith", "Sam", "Smith"],
"Section": ["A", "A", "A", "A", "B", "B", "B", "B"],
"Course": ["Java", "Java", "Dart", "Dart", "Java", "Java", "Dart", "Dart"],
"Marks": [70, 80, 90, 60, 80, 90, 50, 80],
}
df = pd.DataFrame(student)
display(df)
result = df.groupby(["Name", "Section"]).aggregate(["mean", "sum"])
display(result)
出力:
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn