빅데이터분석기사/코드

[빅데이터분석기사] 실기 2회 1유형 풀이(Python)

EveningPrimrose 2023. 6. 14. 23:33
반응형

문제 1

 - 데이터셋(basic1.csv)의 'f5' 컬럼을 기준으로 상위 10개의 데이터를 구하고,

 - 'f5' 컬럼 10개 중 최소값으로 데이터를 대체한 후,

 - 'age' 컬럼에서 80 이상인 데이터의 'f5' 컬럼 평균값 구하기

 

# 라이브러리 및 데이터 불러오기
import pandas as pd

df = pd.read_csv('../input/bigdatacertificationkr/basic1.csv')
df.head()

# f5 컬럼을 기준으로 내림차순 정렬
df = df.sort_value('f5' ascending = False)
df.head(10)

# 최소값 찾기
min = df['f5'][:10].min()
min

df.iloc[:10, -1] = min
df.head(10)

# 80세 이상의 f5 컬럼 평균
print(df[df['age'] >= 80]['f5'].mean())

 

 

문제 2

 - 데이터셋(basic1.csv)의 앞에서 순서대로 70% 데이터만 활용해서,

 - 'f1' 컬럼 결측치를 중앙값으로 채우기 전후의 표준편차를 구하고

 - 두 표준편차 차이 계산하기

# 라이브러리 및 데이터 불러오기
import pandas as pd
import numpy as np

df = pd.read_csv('../input/bigdatacertificationkr/basic1.csv')

# 데이터 나누기 방법1
data70 = df.iloc[:70]
data30 = df.iloc[70:]

# 데이터 나누기 방법2
# data70, data30 = np.split(df, [int(.7*len(df))])

# 데이터 나누기 방법3 (랜덤으로 샘플링하라고 했을 때)
# data70 = df.sample(frac = 0.7)
# data70 = df.drop(data70.index)

data70.tail()

data70.isnull().sum()

before = data70['f1'].std()
med = data70['f1'].median()
data70['f1'] = data70['f1'].fillna(med)
after = data70['f1'].std()

print(before - after)

 

 

문제 3

 - 데이터셋(basic.csv)의 'age' 컬럼의 이상치를 더하시오!

 - 단, 평균으로부터 '표준편차*1.5'를 벗어나는 영역을 이상치라고 판단함

# 라이브러리 및 데이터 불러오기
import pandas as pd
import numpy as np

df = pd.read_csv('../input/bigdatacertificationkr/basic1.csv')

std = df['age'].std()*1.5
mean = df['age'].mean()

min_out = mean - std
min_max = mean + std
print(min_out, max_out)

df[(df['age']>max_out)|(df['age']<min_out)]['age'].sum()

 

반응형