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에서 누락된 값을 계산하는 방법