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 형태로 처리 할것인지 차이가 나게 되지만 결국에는 같습니다.