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

【pandas】groupby()の後にインデックスをリセットする方法を解説

pandasでgroupby後のインデックスをリセットするには?

pandasでは、groupby()でデータをグループ化すると、グループ化のキーとなった列がインデックスとして設定されます。この状態から元のような連番インデックスに戻したい場合は、reset_index()メソッドを使用します。

手順は以下のとおりです。

  1. groupby()を使って、特定の列を基準にデータをグループ化する
  2. その結果に対してreset_index()を呼び出し、インデックスをリセットする

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

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

import pandas as pd

2. 2列のDataFrameを作成

dataFrame = pd.DataFrame(
   {
      "Car": ["Audi", "Lexus", "Audi", "Mercedes", "Audi", "Lexus", "Mercedes", "Lexus", "Mercedes"],

      "Reg_Price": [1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350]
   }
)

3. Car列を基準にグループ化

groupby("Car")で車種ごとにまとめ、mean()で平均値を計算します。

resDF = dataFrame.groupby("Car").mean()

4. グループ化後にインデックスをリセット

resDF.reset_index()

完全なサンプルコード

import pandas as pd

# 2列を持つDataFrameを作成
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列を基準にグループ化
resDF = dataFrame.groupby("Car").mean()

print("\nGrouped DataFrame...\n", resDF)

# グループ化後にインデックスをリセット
print("\nReset index after grouping...\n", resDF.reset_index())

実行結果

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

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

Grouped DataFrame...
            Reg_Price
Car
Audi       1266.666667
Lexus      1450.000000
Mercedes   1183.333333

Reset index after grouping...
         Car   Reg_Price
0      Audi  1266.666667
1     Lexus  1450.000000
2  Mercedes  1183.333333

ポイント解説

  • groupby()直後の状態:「Car」列がインデックスとして扱われ、通常の列としては表示されません。
  • reset_index()適用後:「Car」列が再び通常の列として復帰し、左側に0から始まる連番のインデックスが付与されます。
  • inplace引数:reset_index(inplace=True)と指定すれば、元のDataFrame自体を直接変更することも可能です。デフォルトでは新しいDataFrameが返されます。

このように、groupby()reset_index()を組み合わせることで、集計結果を見やすい表形式で扱えるようになります。

  1. 【Python】Pandas DataFrameからサブセット(列の一部)を選択する方法

    Pandas DataFrameのサブセット選択とは? Pandasでは、DataFrameから必要な列や行だけを取り出す操作を「サブセットの選択」と呼びます。大きなデータセットから目的のデータだけを抽出できれば、分析や前処理の効率が大幅に向上します。 この記事では、CSVファイルを読み込んだDataFrameから、1つの列、および複数の列を選択する基本的な方法を解説します。 使用するCSVファイルの内容 今回使用する「SalesData.csv」は、Microsoft Excelで開くと以下のような内容になっています。 CSVファイルからDataFrameを作成する まず、pd.rea

  2. PythonでPandas DataFrameを棒グラフとして可視化する方法

    データ分析において、PandasのDataFrameを視覚的に表現することは非常に重要です。この記事では、CSVファイルから読み込んだデータをmatplotlibを使って棒グラフ(バーチャート)として表示する方法を解説します。 前提条件:サンプルデータ 今回は以下のような内容のCSVファイル(SalesData.csv)を使用します。 Car Reg_Price 0 BMW 2000 1 Lexus 1500 2 Audi 1500 3 Jaguar 2000 4 Mustang