Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pandas DataFrameのすべてのグループに集計リストを適用する方法

グループごとに集計結果をリスト形式でまとめたい場合は、agg()メソッドを使います。このメソッドの引数としてlistを指定することで、各グループ内の値をリストとして集約できます。

agg()メソッドによるリスト集計の手順

1. 必要なライブラリをインポートする

まず、pandasをインポートします。

import pandas as pd

2. サンプルDataFrameを作成する

次に、「Car(車種)」と「Units(台数)」の2列を持つDataFrameを作成します。

dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Lexus', 'Mustang', 'Bentley', 'Mustang'],
        "Units": [100, 150, 110, 80, 110, 90]
    }
)

3. agg()でlistを引数に指定してグループ化する

groupby()で「Car」列ごとにグループ化し、agg(list)を適用すると、同じ車種の台数がすべてリストにまとめられます。

dataFrame = dataFrame.groupby('Car').agg(list)

完全なサンプルコード

以下が実行可能なコード全体です。

import pandas as pd

# DataFrameを作成
dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Lexus', 'Mustang', 'Bentley', 'Mustang'],
        "Units": [100, 150, 110, 80, 110, 90]
    }
)

print("DataFrame ...\n", dataFrame)

# agg()の引数にlistを指定してグループごとに集計
dataFrame = dataFrame.groupby('Car').agg(list)

# 結果を表示
print("\nDataFrame ...\n", dataFrame)

実行結果

上記のコードを実行すると、次のような出力が得られます。

DataFrame ...
       Car   Units
0      BMW     100
1    Lexus     150
2    Lexus     110
3  Mustang      80
4  Bentley     110
5  Mustang      90

DataFrame ...
              Units
Car
BMW         [100]
Bentley     [110]
Lexus     [150, 110]
Mustang    [80, 90]

ポイント解説

groupby('Car')によって車種ごとに行がグループ化され、agg(list)により各グループ内の「Units」の値がPythonのリストとして1つのセルに格納されます。たとえば「Lexus」は150と110の2件あるため、[150, 110]というリストにまとめられています。この手法は、カテゴリ別に複数の値を保持したい場合や、さらに加工を行う前の中間データを作成したい場合に非常に便利です。

  1. 【Python】Pandas DataFrameからnull(欠損値)行を削除する方法|dropna()の使い方

    PandasのDataFrameからnull(NaN)行を削除するには、dropna()メソッドを使用します。この記事では、NaNを含むCSVファイルを読み込み、dropna()で欠損値を含む行を取り除くまでの手順を、サンプルコードと実行結果とともにわかりやすく解説します。前提:NaNを含むCSVファイル今回の例では、一部にNaN(null値)が含まれる以下のようなCSVファイル(CarRecords.csv)を使用します。手順1:read_csv()でCSVファイルを読み込むまずpandasをインポートし、read_csv()を使ってCSVファイルを読み込みます。ここではデスクトップ上に保存

  2. MatplotlibでPandasデータフレームのプロットDPIを変更する方法

    PandasのDataFrameプロットのDPI(dots per inch:1インチあたりのドット数)を変更するには、MatplotlibのrcParamsを使用して解像度を設定します。rcParamsを使うことで、スクリプト全体に対して一括で描画設定を適用できるため、グラフの画質を簡単に調整できます。手順図のサイズを設定し、figure.autolayoutでサブプロット間および周囲の余白を自動調整します。plt.rcParams[figure.dpi] = 120 のようにしてDPI値を設定します。プロット用のPandasデータフレームを作成します。データフレームをプロットします。sho