Normalization 컬럼 여러개 변환 방법¶
import pandas as pd
df = pd.read_csv("Iris.csv")
df.head(2)
| SepalLengthCm | SepalWidthCm | PetalLengthCm | PetalWidthCm | Species | |
|---|---|---|---|---|---|
| 0 | 5.1 | 3.5 | 1.4 | 0.2 | Iris-setosa |
| 1 | 4.9 | 3.0 | 1.4 | 0.2 | Iris-setosa |
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler().fit(X=df[["SepalWidthCm"]])
df["SepalWidthCm"]=scaler.transform(df[["SepalWidthCm"]])
df.head(2)
| SepalLengthCm | SepalWidthCm | PetalLengthCm | PetalWidthCm | Species | |
|---|---|---|---|---|---|
| 0 | 5.1 | 0.625000 | 1.4 | 0.2 | Iris-setosa |
| 1 | 4.9 | 0.416667 | 1.4 | 0.2 | Iris-setosa |
2 개 이상을 변환 하고자 할때 어떻게 할까?¶
입력시 list 형태로 입력 하면 되나, 출력이 문제, 출력 type을 한번 보도록 합니다.
df = pd.read_csv("Iris.csv")
df.head(2)
scaler = MinMaxScaler().fit(X=df[["SepalWidthCm","PetalLengthCm"]])
trans = scaler.transform(df[["SepalWidthCm","PetalLengthCm"]])
trans
array([[0.625 , 0.06779661],
[0.41666667, 0.06779661],
[0.5 , 0.05084746],
[0.45833333, 0.08474576],
[0.66666667, 0.06779661],
[0.79166667, 0.11864407],
[0.58333333, 0.06779661],
[0.58333333, 0.08474576],
[0.375 , 0.06779661],
[0.45833333, 0.08474576],
[0.70833333, 0.08474576],
[0.58333333, 0.10169492],
[0.41666667, 0.06779661],
[0.41666667, 0.01694915],
[0.83333333, 0.03389831],
[1. , 0.08474576],
[0.79166667, 0.05084746],
[0.625 , 0.06779661],
[0.75 , 0.11864407],
[0.75 , 0.08474576],
[0.58333333, 0.11864407],
[0.70833333, 0.08474576],
[0.66666667, 0. ],
[0.54166667, 0.11864407],
[0.58333333, 0.15254237],
[0.41666667, 0.10169492],
[0.58333333, 0.10169492],
[0.625 , 0.08474576],
[0.58333333, 0.06779661],
[0.5 , 0.10169492],
[0.45833333, 0.10169492],
[0.58333333, 0.08474576],
[0.875 , 0.08474576],
[0.91666667, 0.06779661],
[0.45833333, 0.08474576],
[0.5 , 0.03389831],
[0.625 , 0.05084746],
[0.45833333, 0.08474576],
[0.41666667, 0.05084746],
[0.58333333, 0.08474576],
[0.625 , 0.05084746],
[0.125 , 0.05084746],
[0.5 , 0.05084746],
[0.625 , 0.10169492],
[0.75 , 0.15254237],
[0.41666667, 0.06779661],
[0.75 , 0.10169492],
[0.5 , 0.06779661],
[0.70833333, 0.08474576],
[0.54166667, 0.06779661],
[0.5 , 0.62711864],
[0.5 , 0.59322034],
[0.45833333, 0.66101695],
[0.125 , 0.50847458],
[0.33333333, 0.61016949],
[0.33333333, 0.59322034],
[0.54166667, 0.62711864],
[0.16666667, 0.38983051],
[0.375 , 0.61016949],
[0.29166667, 0.49152542],
[0. , 0.42372881],
[0.41666667, 0.54237288],
[0.08333333, 0.50847458],
[0.375 , 0.62711864],
[0.375 , 0.44067797],
[0.45833333, 0.57627119],
[0.41666667, 0.59322034],
[0.29166667, 0.52542373],
[0.08333333, 0.59322034],
[0.20833333, 0.49152542],
[0.5 , 0.6440678 ],
[0.33333333, 0.50847458],
[0.20833333, 0.66101695],
[0.33333333, 0.62711864],
[0.375 , 0.55932203],
[0.41666667, 0.57627119],
[0.33333333, 0.6440678 ],
[0.41666667, 0.6779661 ],
[0.375 , 0.59322034],
[0.25 , 0.42372881],
[0.16666667, 0.47457627],
[0.16666667, 0.45762712],
[0.29166667, 0.49152542],
[0.29166667, 0.69491525],
[0.41666667, 0.59322034],
[0.58333333, 0.59322034],
[0.45833333, 0.62711864],
[0.125 , 0.57627119],
[0.41666667, 0.52542373],
[0.20833333, 0.50847458],
[0.25 , 0.57627119],
[0.41666667, 0.61016949],
[0.25 , 0.50847458],
[0.125 , 0.38983051],
[0.29166667, 0.54237288],
[0.41666667, 0.54237288],
[0.375 , 0.54237288],
[0.375 , 0.55932203],
[0.20833333, 0.33898305],
[0.33333333, 0.52542373],
[0.54166667, 0.84745763],
[0.29166667, 0.69491525],
[0.41666667, 0.83050847],
[0.375 , 0.77966102],
[0.41666667, 0.81355932],
[0.41666667, 0.94915254],
[0.20833333, 0.59322034],
[0.375 , 0.89830508],
[0.20833333, 0.81355932],
[0.66666667, 0.86440678],
[0.5 , 0.69491525],
[0.29166667, 0.72881356],
[0.41666667, 0.76271186],
[0.20833333, 0.6779661 ],
[0.33333333, 0.69491525],
[0.5 , 0.72881356],
[0.41666667, 0.76271186],
[0.75 , 0.96610169],
[0.25 , 1. ],
[0.08333333, 0.6779661 ],
[0.5 , 0.79661017],
[0.33333333, 0.66101695],
[0.33333333, 0.96610169],
[0.29166667, 0.66101695],
[0.54166667, 0.79661017],
[0.5 , 0.84745763],
[0.33333333, 0.6440678 ],
[0.41666667, 0.66101695],
[0.33333333, 0.77966102],
[0.41666667, 0.81355932],
[0.33333333, 0.86440678],
[0.75 , 0.91525424],
[0.33333333, 0.77966102],
[0.33333333, 0.69491525],
[0.25 , 0.77966102],
[0.41666667, 0.86440678],
[0.58333333, 0.77966102],
[0.45833333, 0.76271186],
[0.41666667, 0.6440678 ],
[0.45833333, 0.74576271],
[0.45833333, 0.77966102],
[0.45833333, 0.69491525],
[0.29166667, 0.69491525],
[0.5 , 0.83050847],
[0.54166667, 0.79661017],
[0.41666667, 0.71186441],
[0.20833333, 0.6779661 ],
[0.41666667, 0.71186441],
[0.58333333, 0.74576271],
[0.41666667, 0.69491525]])
numpy array 형태
df[["SepalWidthCm","PetalLengthCm"]]=trans
df.head(2)
| SepalLengthCm | SepalWidthCm | PetalLengthCm | PetalWidthCm | Species | |
|---|---|---|---|---|---|
| 0 | 5.1 | 0.625000 | 0.067797 | 0.2 | Iris-setosa |
| 1 | 4.9 | 0.416667 | 0.067797 | 0.2 | Iris-setosa |
한개할때와 2개 할때의 차이는 변환 값을 넣는 방법에 차이
다시 1개일때를 다시해보면
df = pd.read_csv("Iris.csv")
df.head(2)
scaler = MinMaxScaler().fit(X=df[["SepalWidthCm"]])
df[["SepalWidthCm"]]=scaler.transform(df[["SepalWidthCm"]])
df.head(2)
| SepalLengthCm | SepalWidthCm | PetalLengthCm | PetalWidthCm | Species | |
|---|---|---|---|---|---|
| 0 | 5.1 | 0.625000 | 1.4 | 0.2 | Iris-setosa |
| 1 | 4.9 | 0.416667 | 1.4 | 0.2 | Iris-setosa |
위와 같이도 가능합니다. Series 형태로 처리하느냐 DataFrame 형태로 처리 할것인지 차이가 나게 되지만 결국에는 같습니다.