Pandas dataframe의 열을 정규화하는 방법


종종 Pandas DataFrame에 있는 하나 이상의 열의 데이터 값을 정규화 하려는 경우가 있습니다.

이 튜토리얼에서는 이를 수행하는 두 가지 방법을 설명합니다.

1. 최소-최대 정규화

  • 목적: 각 데이터 값을 0과 1 사이의 값으로 변환합니다.
  • 공식: 새 값 = (값 – 최소) / (최대 – 최소)

2. 평균 정규화

  • 목적: 모든 값의 평균이 0과 std가 되도록 값을 조정합니다. 개발자 1입니다.
  • 공식: 새 값 = (값 – 평균) / (표준 편차)

Pandas DataFrame에서 각 메서드를 사용하는 방법의 예를 살펴보겠습니다.

예시 1: 최소-최대 정규화

다음과 같은 팬더 DataFrame이 있다고 가정합니다.

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]}) 

#view DataFrame
print (df)

   points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6

다음 코드를 사용하여 DataFrame의 각 열에 최소-최대 정규화를 적용할 수 있습니다.

 (df-df. min ())/(df. max ()-df. min ())

        points assists rebounds
0 1.000000 0.000000 1.0
1 0.000000 0.285714 0.4
2 0.230769 0.285714 0.8
3 0.153846 0.571429 0.0
4 0.538462 1.000000 0.0

이제 각 열의 최대값은 1 이고 각 열의 최소값은 0 이며 다른 모든 값은 0과 1 사이입니다.

예시 2: 평균 정규화

다음과 같은 pandas DataFrame이 있다고 다시 가정해 보겠습니다.

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]}) 

#view DataFrame
print (df)

   points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6

다음 코드를 사용하여 DataFrame의 각 열에 평균 정규화를 적용할 수 있습니다.

 (df- df.mean ())/df. std ()

        points assists rebounds
0 1.554057 -1.133893 1.227881
1 -0.971286 -0.377964 -0.087706
2 -0.388514 -0.377964 0.789352
3 -0.582772 0.377964 -0.964764
4 0.388514 1.511858 -0.964764

이제 각 열 값의 평균이 0, 각 열 값의 표준편차가 1이 되도록 정규화되었습니다.

특정 데이터 포인트의 정규화된 값이 0보다 큰 경우 이는 해당 데이터 포인트가 해당 열의 평균보다 크다는 것을 나타냅니다. 반대로, 0보다 작은 정규화된 값은 데이터 포인트가 해당 열의 평균보다 아래에 있음을 나타냅니다.

추가 리소스

Pandas: 여러 열을 그룹화하고 집계하는 방법
여러 조건에서 Pandas DataFrame을 필터링하는 방법
Pandas DataFrame에서 누락된 값을 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다