파이썬과 머신러닝

2024. 10. 10. 23:56머신러닝

728x90

머신러닝에서 일반적으로 사용하고 있는 판다스 dataframe 을 이용하는 방법에 대해서 몇가지를 알아보려고 합니다.

 

1. 컬럼명 표출하기

dataframe 안에 있는 컬럼 명을 표출합니다.

def print_colum_name(df) :
    for column in df.columns:
       print(column)

 

2. Scaler 사용하기

시계열 데이터를 정규화 하기 위해서 여러가지 Scaler 를 사용하게 됩니다.

dataframe에 Scaler 를 적용하기 위한 함수를 다음과 같이 만들어 보았습니다.

def get_df_from(scaler, train_df) :
    scaler.fit(train_df)
    train_df_scaled = scaler.transform(train_df)

    train_df_ret = pd.DataFrame(train_df_scaled)
    
    return train_df_ret

 

scaler : 사용하고자 하는 scaler

train_df: 데이터프레임

사용법:

 

#scaler 선언
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import MaxAbsScaler
from sklearn.preprocessing import RobustScaler
from sklearn.preprocessing import Normalizer

#scaler 할당
mms = MinMaxScaler()
std = StandardScaler()
mas = MaxAbsScaler()
rbs = RobustScaler()
norm = Normalizer()

#scaler 별 데이터프레임 할당
train_df_mms = pd.DataFrame()
train_df_std = pd.DataFrame()
train_df_mas = pd.DataFrame()
train_df_rbs = pd.DataFrame()
train_df_norm = pd.DataFrame()

#해당 scaler로 정규화
train_df_mms = get_df_from(mms, train_df)
train_df_std = get_df_from(std, train_df)
train_df_mas = get_df_from(mas, train_df)
train_df_rbs = get_df_from(rbs, train_df)
train_df_norm = get_df_from(norm, train_df)

 

3. 데이터프레임 변경하기

원하는 컬럼명으로 데이터 프레임 내의 데이터를 변경하고자 할 때, 다음과 같이 사용합니다.

코드의 내용은 변경하려는 데이터프레임 df_from 을 새로운 데이터프레임에 복사합니다.

df_to = pd.DataFrame()
df_to['Timestamp'] = df_from.index
df_to['X1'] = df_from[0]
df_to['X2'] = df_from[1]
df_to['X3'] = df_from[2]
df_to['X6'] = df_from[3]
df_to['X7'] = df_from[4]
df_to['Y'] = df_from[5]

df_to.set_index(keys='Timestamp', inplace=True)

 

4. 컬럼 확인 및 데이터 타입 변경

만약 데이터프레임에 컬럼이 존재하면 해당 데이터 타입을 변경하고 싶을 때 다음과 같이 하였습니다.

 if('Y' in df.columns and df.Y.dtype == np.float64) :
   df = df.astype({'Y': 'int'})
728x90