Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas - groupby() 이후 인덱스를 재설정하는 방법

Pandas에서 groupby() 연산을 수행하면 그룹화 기준이 된 열이 새로운 인덱스로 이동하게 됩니다. 그룹화 이후 인덱스를 원래 일련 번호 형태로 되돌리려면 reset_index() 메서드를 사용하면 됩니다.

groupby() 후 인덱스 재설정 절차

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

두 개의 열(Car, Reg_Price)을 가진 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]
   }
)

"Car" 열을 기준으로 데이터를 그룹화하고 각 그룹의 평균값을 계산합니다.

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

그룹화가 완료된 결과에 대해 reset_index()를 호출하여 인덱스를 재설정합니다.

resDF.reset_index()

전체 예제 코드

다음은 위 과정을 하나로 정리한 전체 코드입니다.

import pandas as pd

# 두 개의 열을 가진 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("\n그룹화 결과...\n", resDF)

# 그룹화 후 인덱스 재설정
print("\n인덱스 재설정 결과...\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

그룹화 결과...
           Reg_Price
Car
Audi      1266.666667
Lexus     1450.000000
Mercedes  1183.333333

인덱스 재설정 결과...
        Car   Reg_Price
0      Audi  1266.666667
1     Lexus  1450.000000
2  Mercedes  1183.333333

출력 결과를 보면, groupby("Car")를 적용한 직후에는 "Car" 열이 인덱스 역할을 하게 됩니다. 하지만 reset_index()를 호출하면 "Car"가 다시 일반 열로 복원되고, 0부터 시작하는 기본 정수 인덱스가 새로 부여되는 것을 확인할 수 있습니다.