[파이썬] pandas 데이터 프레임의 정규화 (normalize)

데이터 처리 및 분석에 널리 사용되는 pandas 라이브러리는 데이터 프레임을 다루는데 강력한 기능을 제공합니다. 데이터 프레임은 표 형태로 구성된 데이터를 효과적으로 다룰 수 있는 구조입니다. 이 글에서는 pandas를 사용하여 데이터 프레임을 정규화하는 방법에 대해 알아보겠습니다.

1. 정규화란?

정규화(normalization)는 데이터의 범위를 조절하여, 모든 데이터가 동일한 스케일을 가지도록 하는 작업을 말합니다. 일반적으로, 데이터 프레임의 각 열(column)마다 다른 범위를 가지고 있을 경우, 분석 결과에 영향을 줄 수 있습니다. 정규화는 이러한 문제를 해결하고, 데이터 간의 상대적인 비교를 용이하게 합니다.

2. pandas를 이용한 데이터 프레임 정규화

pandas는 데이터프레임을 다루는데 필요한 다양한 함수와 메서드를 제공합니다. 이 중에서도, DataFrame 클래스의 apply() 메서드를 활용하면 정규화를 간단하게 수행할 수 있습니다. 아래는 apply() 메서드를 이용한 데이터 프레임 정규화 예시 코드입니다.

import pandas as pd

# 데이터프레임 생성
data = {'A': [1, 2, 3, 4, 5],
        'B': [10, 20, 30, 40, 50],
        'C': [100, 200, 300, 400, 500]}

df = pd.DataFrame(data)

# 정규화 함수 정의
def normalize_column(column):
    return (column - column.min()) / (column.max() - column.min())

# 각 열에 정규화 함수 적용
normalized_df = df.apply(normalize_column)

print(normalized_df)

위 코드에서는 normalize_column()이라는 함수를 정의하고, 각 열에 대해 이 함수를 apply() 메서드를 사용하여 적용합니다. normalize_column() 함수는 각 열의 최솟값을 빼고 최댓값으로 나누어 정규화된 값을 반환합니다. 이를 통해 데이터 프레임의 모든 열이 0과 1 사이의 값을 가지도록 정규화됩니다.

3. 결과

위 예제 코드를 실행하면 다음과 같은 정규화된 데이터 프레임이 출력됩니다.

     A    B    C
0  0.0  0.0  0.0
1  0.25  0.25  0.25
2  0.5  0.5  0.5
3  0.75  0.75  0.75
4  1.0  1.0  1.0

코드에서 볼 수 있듯이, 모든 열의 값이 0과 1 사이로 정규화되었습니다. 이를 통해 각 열의 데이터를 상대적으로 비교할 수 있게 되었습니다.

4. 정리

이번 글에서는 pandas를 사용하여 데이터 프레임을 정규화하는 방법에 대해 알아보았습니다. 정규화를 통해 데이터의 스케일을 일정하게 조절할 수 있고, 열간의 비교를 용이하게 할 수 있습니다. 데이터 분석 및 머신러닝 작업에서 정규화는 중요한 전처리 과정 중 하나이며, pandas를 활용하면 간단하게 수행할 수 있습니다.