Table of Contents

Python

인덱스 Index, concat 전에는 reset_index

꼬꼬마코더 2024. 7. 18. 22:31
728x90

인덱스(Index)는 pandas 데이터프레임과 시리즈에서 데이터의 위치를 나타내는 필수적인 부분입니다. 인덱스는 행과 열을 고유하게 식별하는 데 사용되며, 데이터를 조회하고 조작하는 데 중요한 역할을 합니다.

인덱스(Index)의 원리

  1. 행 인덱스(Row Index)와 열 인덱스(Column Index):

    • 행 인덱스는 데이터프레임의 각 행을 고유하게 식별하는 데 사용됩니다. 기본적으로 pandas는 0부터 시작하는 정수 인덱스를 사용하지만, 사용자가 지정한 다른 값으로도 설정할 수 있습니다.
    • 열 인덱스는 각 열의 이름을 나타내며, 데이터프레임의 열을 고유하게 식별합니다.
  2. 인덱스의 역할:

    • 데이터 조회: 인덱스를 사용하여 특정 행이나 열의 데이터를 빠르게 조회할 수 있습니다.
    • 데이터 정렬: 인덱스를 기준으로 데이터프레임을 정렬할 수 있습니다.
    • 데이터 병합: 두 데이터프레임을 인덱스를 기준으로 병합하거나 결합할 수 있습니다.
    • 중복 확인: 인덱스가 고유한지 확인하여 데이터의 무결성을 유지할 수 있습니다.

reset_index()의 역할

reset_index() 메서드는 데이터프레임의 인덱스를 초기화하거나 변경하는 데 사용됩니다. 이를 통해 기존의 인덱스를 제거하고 새로운 정수 인덱스를 설정할 수 있습니다.

  • drop=True: 기존 인덱스를 제거하고 새로운 정수 인덱스를 설정합니다. 기존 인덱스는 데이터프레임에 추가되지 않습니다.
  • inplace=True: 원본 데이터프레임을 직접 수정합니다. 이 옵션을 사용하지 않으면 새로운 데이터프레임이 반환됩니다.

예시

import pandas as pd

# 예시 데이터프레임 생성
data = {
    'A': [1, 2, 3, 4],
    'B': [10, 20, 30, 40]
}
df = pd.DataFrame(data)
df.set_index('A', inplace=True)

print("원본 데이터프레임:")
print(df)

# 인덱스를 초기화
df_reset = df.reset_index()

print("\n인덱스를 초기화한 데이터프레임:")
print(df_reset)

위 코드에서:

  1. df는 'A' 열을 인덱스로 설정한 데이터프레임입니다.
  2. reset_index()를 사용하여 인덱스를 초기화하면, 기존 인덱스('A' 열)가 데이터프레임의 열로 추가되고 새로운 정수 인덱스가 설정됩니다.

결과

원본 데이터프레임:
    B
A     
1  10
2  20
3  30
4  40

인덱스를 초기화한 데이터프레임:
   A   B
0  1  10
1  2  20
2  3  30
3  4  40
  • 원본 데이터프레임에서는 'A' 열이 인덱스로 설정되어 있습니다.
  • 인덱스를 초기화한 데이터프레임에서는 'A' 열이 다시 데이터프레임의 열로 복구되고, 새로운 정수 인덱스가 설정되었습니다.

이처럼 reset_index()는 인덱스를 초기화하거나 변경하는 데 유용하며, 데이터 조작 및 분석에서 중요한 역할을 합니다.

concat을 할 경우 index를 재설정한 후 병합

import pandas as pd

예시 데이터프레임 생성

data1 = {'A': [1, 2, 3], 'B': [4, 5, 6]}
data2 = {'C': [7, 8, 9], 'D': [10, 11, 12]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

인덱스 재설정

df1.reset_index(drop=True, inplace=True)
df2.reset_index(drop=True, inplace=True)

데이터프레임 병합

df = pd.concat([df1, df2], axis=1)

결과 확인

print(df)