【pandas】groupby()の後にインデックスをリセットする方法を解説
pandasでgroupby後のインデックスをリセットするには?
pandasでは、groupby()でデータをグループ化すると、グループ化のキーとなった列がインデックスとして設定されます。この状態から元のような連番インデックスに戻したい場合は、reset_index()メソッドを使用します。
手順は以下のとおりです。
groupby()を使って、特定の列を基準にデータをグループ化する- その結果に対して
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()を組み合わせることで、集計結果を見やすい表形式で扱えるようになります。
-
【Python】Pandas DataFrameからサブセット(列の一部)を選択する方法
Pandas DataFrameのサブセット選択とは? Pandasでは、DataFrameから必要な列や行だけを取り出す操作を「サブセットの選択」と呼びます。大きなデータセットから目的のデータだけを抽出できれば、分析や前処理の効率が大幅に向上します。 この記事では、CSVファイルを読み込んだDataFrameから、1つの列、および複数の列を選択する基本的な方法を解説します。 使用するCSVファイルの内容 今回使用する「SalesData.csv」は、Microsoft Excelで開くと以下のような内容になっています。 CSVファイルからDataFrameを作成する まず、pd.rea
-
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