소품집

[빅분기] 22년 2회차 빅데이터분석기사 실기 정리 본문

AI

[빅분기] 22년 2회차 빅데이터분석기사 실기 정리

sodayeong 2022. 11. 30. 23:44
728x90

1. 사용할 수 있는 패키지 (22년도 2회차 기준)

https://www.dataq.or.kr/www/board/view.do?bbsKey=eyJiYnNhdHRyU2VxIjoxLCJiYnNTZXEiOjUzMTc0NX0=&boardKind=notice 

 

데이터자격시험

 

www.dataq.or.kr

 

2. 응시환경에서 실습하기 - Kaggle

https://www.kaggle.com/datasets/agileteam/bigdatacertificationkr

 

Big Data Certification KR

빅데이터 분석기사 실기 (Python, R tutorial code)

www.kaggle.com

 

작업형 1 유형

1. 평균 구하기
- 주어진 Dataset에서 CRIM값이 가장 큰 10개의 지역을 구하고
- 10개의 지역의 CRIM값을 그 중 가장 작은 값으로 대체해
- AGE 컬럼 값이 80이상인 대체 된 CRIM 평균값을 구하라

df = df.sort_values('CRIM', ascending = False) # 내림차순 정렬
df.head()

min_crim = df['CRIM'].head(10).min() # 상위 10개 중 최솟값 찾아 저장
min_crim

df.iloc[:10, 0] = min_crim # 상위 10개를 최솟값으로 대치 

result = df.loc[df['AGE']>=80, 'CRIM'].mean() # AGE가 80 이상인 CRIM의 평균값 
print(result)
# 2022년 데이터 중 2022년 중앙값보다 큰 값의 데이터 수
# 데이터의 수 > 행의 수 > loc로 ~
cond1 = df.loc['2022년'].median()
print(sum(df.loc['2022년', :] > cond1))

- 결측치 행을 제거하고, 앞에서부터 60% 를 활용해 'f1' 컬럼의 3사분위 값을 구하시오

# df.iloc[행 인덱스, 열 인덱스]

df.dropna(inplace=True)
df.iloc[:int(len(df) * 0.6)]

# print(df['f1'].describe())
print(77.25)

- 결측치가 가장 큰 값의 컬럼명을 구하자

df_count = df.isna().sum()
print(df_count.index[3])

 

 

 

2. 표준편차 비교하기 / 비율, 조건, 선택하기 

df.isna().sum() # 결측치 확인 

# 대체 컬럼은 임의로 지정함

# 대체 전 표준편차 계산
bf_std = np.std(df['INDUS'])

# 중앙값으로 결측치 채우기
df['INDUS'].fillna(df['INDUS'].median(), inplace=True)

# 대체 후 표준편차 계산
af_std = np.std(df['INDUS'])

result = af_std - bf_std
print(result)
# 데이터 파일 읽기 예제
import pandas as pd
a = pd.read_csv("data/fb.csv")

level = (a['loves'] + a['wows']) / (a['reactions'])

cond1 = level > 0.4
cond2 = level < 0.5
cond3 = a['type'] == 'video'

print(len(a[cond1 & cond2 & cond3]))

# 답안 제출 예시
# print(평균변수값)
# 데이터 파일 읽기 예제
import pandas as pd
a = pd.read_csv("data/nf.csv")
#print(a.info())

# 사용자 코딩
#print(a.head())
#print(a['date_added'])

a['date_added'] = pd.to_datetime(a['date_added']) # 데이터 타입으로 변환

cond1 = a['date_added'].dt.year == 2018
cond2 = a['date_added'].dt.month == 1
cond3 = a['country']=='United Kingdom'

print(len(a[cond1 & cond2 & cond3])) # 조건 식을 만족하는 데이터의 개수
# 답안 제출 예시
# print(평균변수값)

 

3번 문제 : 이상치 합 구하기
- oo 컬럼의 평균으로 부터 1.5 * 표준편차를 벗어나는 영역을 이상치라고 판단하고
- 이상치들의 합을 구하여라

# 1.5 * std 값 구하기
std = np.std(df['TAX']) * 1.5

# 컬럼의 평균에 이상치 영역 min, max 구하기
min_std, max_std = df['TAX']-std, df['TAX']+std

# min-max 범위를 벗어나는 값을 선택해 합계 구하기
result = df.loc[(df['TAX']>max_std) | (df['TAX']<min_std), 'TAX'].sum()

print(result)

 

 

 

작업형 2 유형

Dataset -  https://www.kaggle.com/prachi13/customer-analytics

 

E-Commerce Shipping Data

Product Shipment Delivered on time or not? To Meet E-Commerce Customer Demand

www.kaggle.com

 

# 패키지와 모듈은 자동완성 기능을 사용할 수 없어서 이점을 잘 생각하면서 준비했다. 

 

 

 

 

 

 

 

 

 

 

자격증이니까 최대한 힘 안주고 합격만 하면 되는 수준으로 공부했다. 

728x90
Comments