본문 바로가기
Python/Pandas

Index Alignment란?

by ISLA! 2023. 8. 9.

Index Alignment란?

  • 서로 다른 두 개 이상의 데이터 구조를 합칠 때 인덱스(또는 행 이름)를 기준으로 데이터를 정렬하고 맞추는 과정
  • 데이터 구조의 크기가 다르거나 순서가 다른 상황에서도 데이터를 일관되게 조작하고 비교할 수 있다

 

예를 들어, 다음과 같은 두 개의 데이터프레임이 있다고 하자.

두 데이터프레임을 더하려고 할 때, 열이름이 다르거나 크기가 달라서 연산하기 어렵다.

그런데, index alignment가 동작하면 인덱스를 기준으로 데이터가 맞춰진다.

df1:
     A   B   C
0  1.0  2.0  3.0
1  4.0  5.0  6.0

df2:
     B   C   D
0  7.0  8.0  9.0
1  10.0 11.0 12.0

결과적으로 각 셀에서 해당 인덱스의 데이터가 정렬되어 연산이 된다.

result = df1 + df2:

     A     B     C   D
0  NaN   9.0  11.0 NaN
1  NaN  15.0  17.0 NaN

 

실제 데이터를 가지고 분석을 할 때, loc 와 같이 특정 행과 열에 필터를 걸어 보고 싶을 때도

index 번호, 또는 Index로 설정한 컬럼값을 기준으로 연산이 되는 것이다.

 

다음과 같이, 시리즈와 데이터프레임이 함께 연산이 될 수 있는 것도 index alignment 덕분이다👍

가장 대표적인 컬럼을 Index로 설정해놓고 데이터 전처리를 수행하면 간편해진다.

demovars_misscnt = covidtotals[demovars].isnull().sum(axis=1)
covidtotals.loc[demovars_misscnt >= 3, ['location']+demovars].T

728x90