본문 바로가기
자격증/빅데이터분석기사-실기

빅데이터분석기사 실기 1유형

by jinny-log 2024. 11. 24.

기초 통계량

#평균
mean=df['value'].mean()

#표준편차
std=df['value'].std()

#1사분위수/3사분위수
q1=df['value'].quantile(0.25)
q3=df['value'].qunatile(0.75)

#describe()통해서도 1/3사분위수 확인할 수 있음
df.describe()

#IQR = 3사분위수 - 1사분위수
iqr=q3-q1

#이상치 조건
#1사분위수-(iqr*1.5)보다 작은값과 3사분위수+(iqr+1.5)보다 큰 값을 이상치로 정의

cond1=df['value'] < q1-(iqr)*1.5
cond2=df['value'] > q3+(iqr)*1.5

#필터링
filter_df=df[ cond1 | cond2 ]

#이상치의 합
print(int(filter_df['value'].sum()))

#nlaregst

 

# corr 상관계수
df_cor=df.corr()

# 특정 변수와의 상관관계 절대값
df_corr=df.corr()['value'].abs()

# 상관관계가 높은 변수명
col=df_corr.loc['value1':'value7'].idxmax()

날짜

# 날짜형식 변환 : pd.to_datetime()
df['date']=pd.to_datetime(df['date'])

# 날짜차이 형식 : df['value'].dt.total_seconds()
df['date_diff']=df['date1']-df['date2']
df['date_diff']=df['date_diff'].dt.total_seconds() #초단위
df['date_diff']=df['date_diff'].dt.total_seconds()/60 #분단위
df['date_diff']=df['date_diff'].dt.total_seconds()/60/60 #시간단위

# 날짜기간 묶음 : df['value'].dt.to_period('M') : 연도와 월을 묶어줌
df['date_new']=df['value'].dt.to_period('M')

# 날짜 요일 : df['value'].dt.dayofweek, 0:월 1:화, 6:일
df['dayofweek']=df['value'].dt.dayofweek

 

슬라이싱

df['new_value']=df['value'].str[5:]

 

Scaler

#MinMax Scaler
from sklearn.preprocessing import MinMaxScaler

scaler=MinMaxScaler()

#유의사항! transform안의 df안의 value 지정시, 각괄호 두개 안에 넣어야 print시 에러가 안뜸
df['value']=data.fit_transform(df['value']) --> error
df['value']=data.fit_transform(df[['value']]) --> 정상


#Standard Scaler
from sklearn.preprocessing import StandardScaler
scaler=StandardScaler()
df['score']=scaler.fit_transform(df[['score']])

print(round(df.score.max(),3))