Table of Contents

Python

reindex와 reset_index의 차이

꼬꼬마코더 2024. 7. 18. 23:53
728x90

reindexreset_index는 pandas에서 인덱스를 조작하는 두 가지 주요 메서드입니다. 이 둘의 기능과 용도는 다릅니다.

reindex

reindex 메서드는 데이터프레임의 행 또는 열을 새로운 인덱스로 맞추는 데 사용됩니다. 새로운 인덱스를 제공하면, 해당 인덱스에 맞춰 데이터프레임을 재구성합니다. 만약 새로운 인덱스에 기존 인덱스에 없는 값이 있다면, 그에 해당하는 데이터는 NaN으로 채워집니다.

용도:

  • 인덱스를 새로운 값으로 설정하고, 기존 데이터의 순서를 재배열하거나, 부족한 데이터를 NaN으로 채웁니다.

예시:

import pandas as pd

# 예시 데이터프레임 생성
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data, index=['a', 'b', 'c'])

# 새로운 인덱스를 사용하여 reindex
new_index = ['a', 'b', 'c', 'd']
df_reindexed = df.reindex(new_index)

print("Original DataFrame:")
print(df)
print("\nReindexed DataFrame:")
print(df_reindexed)

결과:

Original DataFrame:
   A  B
a  1  4
b  2  5
c  3  6

Reindexed DataFrame:
     A    B
a  1.0  4.0
b  2.0  5.0
c  3.0  6.0
d  NaN  NaN

reset_index

reset_index 메서드는 데이터프레임의 인덱스를 기본값(0, 1, 2, ...)으로 리셋하고, 기존의 인덱스를 데이터프레임의 열로 이동시킵니다. drop=True 옵션을 사용하면 기존의 인덱스를 열로 이동하지 않고 제거할 수 있습니다.

용도:

  • 인덱스를 기본값으로 리셋하여 연속적인 정수 인덱스로 설정합니다.
  • 기존 인덱스를 데이터프레임의 열로 이동할 수 있습니다.

예시:

import pandas as pd

# 예시 데이터프레임 생성
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data, index=['a', 'b', 'c'])

# 인덱스를 리셋
df_reset = df.reset_index()

print("Original DataFrame:")
print(df)
print("\nReset Index DataFrame:")
print(df_reset)

결과:

Original DataFrame:
   A  B
a  1  4
b  2  5
c  3  6

Reset Index DataFrame:
  index  A  B
0     a  1  4
1     b  2  5
2     c  3  6

주요 차이점 요약

  • reindex:

    • 행 또는 열의 인덱스를 새로운 인덱스로 맞춥니다.
    • 기존 데이터가 새로운 인덱스에 맞춰 재배열되고, 부족한 부분은 NaN으로 채워집니다.
    • 주로 인덱스를 새롭게 설정하거나 정렬할 때 사용됩니다.
  • reset_index:

    • 인덱스를 기본값으로 리셋하고, 기존의 인덱스를 데이터프레임의 열로 이동합니다.
    • drop=True를 사용하면 기존 인덱스를 완전히 제거할 수 있습니다.
    • 주로 인덱스를 초기화하거나 인덱스를 열로 변환할 때 사용됩니다.

이 두 메서드는 인덱스 조작을 위한 서로 다른 목적을 가지고 있으며, 필요에 따라 적절하게 사용해야 합니다.