group_by명령을 이용해서 Year와 Product로 데이터를 묶고 합을 구합니다. 결과의 index정보를 확인하면 위와 같이 MultiIndex를 갖는 것을 알 수 있습니다.
# 인덱스를 초기화하여 일반 데이터프레임으로 변환reset_df = grouped_df.reset_index()# 결과 확인display(reset_df)display(f"index : {reset_df.index}")
Year
Product
Sales
0
2020
Product_A
200
1
2020
Product_B
150
2
2021
Product_A
220
3
2021
Product_B
180
'index : RangeIndex(start=0, stop=4, step=1)'
기존 데이터프레임: groupby 연산 후, Year와 Product가 인덱스로 설정되어 있습니다.
reset_index() 사용 후: Year와 Product가 다시 열로 변환되었으며, 기본 인덱스(0부터 시작하는 숫자 인덱스)가 추가되었습니다.
수행 결과인 reset_df의 형태를 살펴보면 MultiIndex의 정보가 각각 열로 나누어져 저장되고 새로운 Index가 생성되었습니다.
2.3 drop 옵션 사용
때로는 기존 인덱스를 열로 변환하지 않고 완전히 삭제하고 싶을 때가 있습니다. 이 경우 drop=True 옵션을 사용합니다.
# 인덱스를 삭제하고 기본 인덱스로 초기화reset_df_dropped = grouped_df.reset_index(drop=True)# 결과 확인reset_df_dropped
Sales
0
200
1
150
2
220
3
180
drop=True: 기존 인덱스를 데이터프레임에서 삭제하고, 기본 인덱스를 생성합니다. 결과 데이터 프레임에는 Index 정보가 삭제되었습니다.
2.4 inplace 옵션 사용
reset_index()를 호출할 때 원본 데이터프레임을 직접 수정하고 싶다면 inplace=True 옵션을 사용할 수 있습니다.
# 원본 데이터프레임을 직접 수정하여 인덱스를 초기화grouped_df.reset_index(inplace=True)# 결과 확인grouped_df
Year
Product
Sales
0
2020
Product_A
200
1
2020
Product_B
150
2
2021
Product_A
220
3
2021
Product_B
180
이 옵션을 사용하면 reset_index() 후에 grouped_df는 인덱스가 초기화된 상태로 변환됩니다.
3. 언제 reset_index를 사용해야 할까?
reset_index() 함수는 다음과 같은 상황에서 사용됩니다:
그룹화 후 데이터프레임을 열 중심으로 다루고 싶을 때: 그룹화 후 분석을 위해 인덱스를 열로 변환해 데이터를 더 직관적으로 다룰 수 있습니다.
데이터 저장 또는 시각화 전 처리: 데이터프레임을 파일로 저장하거나 시각화할 때 인덱스를 포함시키고 싶을 때 유용합니다.
다양한 인덱스 변환 작업이 필요할 때: 복잡한 계층적 인덱스를 열로 변환하거나 특정 작업을 위해 인덱스를 초기화하고자 할 때 사용됩니다.
4. 결론
pandas.reset_index() 함수는 데이터프레임의 인덱스를 초기화하거나, 기존 인덱스를 열로 변환하는 데 매우 유용한 도구입니다. 데이터를 더 직관적으로 관리하거나, 저장 및 시각화를 위한 전처리 과정에서 자주 사용됩니다. 데이터 분석 과정에서 reset_index()의 활용 방법을 익혀 두면, 인덱스 조작과 관련된 다양한 상황에서 유연하게 대처할 수 있을 것입니다.