【Python・Pandas】groupby()でデータフレームの列をグループ化して集計する方法
Pandasのgroupby()による列のグループ化
Pandasのデータフレームで特定の列を基準にデータをグループ化するには、groupby()メソッドを使用します。groupby()は、同じ値を持つ行同士をまとめ、その後平均値や合計値などの集計処理を行う際に非常に便利な機能です。
まず、サンプル用のPandasデータフレームを作成しましょう。
import pandas as pd
dataFrame = pd.DataFrame(
{
"Car": ["Audi", "Lexus", "Audi", "Mercedes", "Audi", "Lexus", "Mercedes", "Lexus", "Mercedes"],
"Reg_Price": [1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350]
}
)このデータフレームには、車名を表す「Car」列と、登録価格を表す「Reg_Price」列が含まれています。
Car列を基準にグループ化する
次に、「Car」列の値を基準にデータをグループ化します。
res = dataFrame.groupby("Car")グループ化が完了したら、mean()関数を使って、車名(Car)ごとの登録価格(Reg_Price)の平均値を計算します。
res.mean()
これにより、Car列の各値(Audi・Lexus・Mercedes)ごとに、登録価格の平均が算出されます。
コード例全体
以下に、一連の流れをまとめた完全なコードを示します。
import pandas as pd
# Reg_Price列を含むデータフレームを作成
dataFrame = pd.DataFrame(
{
"Car": ["Audi", "Lexus", "Audi", "Mercedes", "Audi", "Lexus", "Mercedes", "Lexus", "Mercedes"],
"Reg_Price": [1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350]
}
)
print("DataFrame...\n", dataFrame)
# Car列を基準にグループ化
res = dataFrame.groupby("Car")
print("\n車名ごとの登録価格の平均値...\n", res.mean())実行結果
上記のコードを実行すると、以下のような出力が得られます。
DataFrame... Car Reg_Price 0 Audi 1000 1 Lexus 1400 2 Audi 1100 3 Mercedes 900 4 Audi 1700 5 Lexus 1800 6 Mercedes 1300 7 Lexus 1150 8 Mercedes 1350 車名ごとの登録価格の平均値... Reg_Price Car Audi 1266.666667 Lexus 1450.000000 Mercedes 1183.333333
出力結果の解説
結果からわかるように、各車名の登録価格の平均値は以下の通りです。
- Audi:約1266.67
- Lexus:1450.00
- Mercedes:約1183.33
このように、groupby()とmean()を組み合わせることで、カテゴリ別の集計を簡単に行うことができます。なお、平均値以外にもsum()(合計)、count()(件数)、max()/min()(最大値・最小値)などの集計関数も同様に利用できるため、用途に応じて使い分けると便利です。
-
【Python】Pandas DataFrameからサブセット(列の一部)を選択する方法
Pandas DataFrameのサブセット選択とは? Pandasでは、DataFrameから必要な列や行だけを取り出す操作を「サブセットの選択」と呼びます。大きなデータセットから目的のデータだけを抽出できれば、分析や前処理の効率が大幅に向上します。 この記事では、CSVファイルを読み込んだDataFrameから、1つの列、および複数の列を選択する基本的な方法を解説します。 使用するCSVファイルの内容 今回使用する「SalesData.csv」は、Microsoft Excelで開くと以下のような内容になっています。 CSVファイルからDataFrameを作成する まず、pd.rea
-
Python PandasでDataFrameの複数のデータ列をプロットする方法
PythonのPandasライブラリを使えば、DataFrameに含まれる複数のデータ列を簡単に可視化できます。本記事では、plot()メソッドを使用し、kindパラメータをbarに設定することで、複数の列を1つの棒グラフとして描画する方法を解説します。必要なライブラリのインポートまず、PandasとMatplotlibという2つの必須ライブラリをインポートします。Pandasはデータ操作を、Matplotlibはグラフの表示を担当します。import pandas as pd import matplotlib.pyplot as mpサンプルデータの準備ここでは、各チームのランキングポイン