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
'머신러닝' 카테고리의 다른 글
피드포워드 신경망으로 숫자 및 의류 항목 분류 (0) | 2023.04.17 |
---|---|
파이썬 코드 예제 - 초보자를 위한 머신러닝 알고리즘 (1) | 2023.04.05 |
C++에서 데이터 전처리 및 시각화 (1) | 2022.12.09 |
선형회귀와 그래프 (0) | 2022.10.12 |
선형회귀에 대한 고찰 (2) | 2022.10.07 |