[빅데이터분석기사] 실기 제1유형 정리

2024. 6. 19. 18:37·Challenge

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

1유형은 기본적인 데이터 가공 및 분석에 관한 내용으로,

처리 이후 질문에 대한 답을 입력하는 단답형 유형이다.

 

df.loc을 활용하여 조건에 해당하는 부분을 구하는 것이 편하고, 코드가 깔끔하게 정리된다.

df.loc[ {행의 조건} ,  {열의 조건} ] = {값} 으로 코드를 작성하면 된다. 

 

학습에 참고한 문제는 아래와 같다.

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

 

Big Data Certification KR

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

www.kaggle.com

 

중요한 문제를 세 가지정도 뽑아보자면 아래와 같다.

 

1. T1-1.Outlier(IQR)

IQR은 quantile을 이용하여 계산하며, Q1과 Q3 기준 중앙으로부터 IQR*1.5범위 밖에 있으면 이상치로 간주한다.

T1-1.Outlier(IQR) / #이상치 #IQR 문제는 아래처럼 구할 수 있으며, df.loc을 이용하여 간단하게 계산했다.

import pandas as pd

df = pd.read_csv('../input/titanic/train.csv')
# print(df.info())
# print(df.isnull().sum())

q1, q3 = df['Fare'].quantile(.25), df['Fare'].quantile(.75)
iqr = q3 - q1

q1_data = df.loc[(df['Fare'] < q1 - iqr*1.5) & (df['Sex']=='female')]
q3_data = df.loc[(df['Fare'] > q3 + iqr*1.5) & (df['Sex']=='female')]

print(len(q1_data), len(q3_data))

 

2. T1-3. Missing data 

isnull, column drop, median, mean을 한 번에 이용하는 문제로, DataFrame 가공의 기본을 물어보는 문제이다.

T1-3. Missing data / #결측치 #삭제 #중앙 #평균 문제는 아래처럼 구할 수 있으며, 역시 df.loc의 조건문으로 해결했다.

 

df['col'].unique()와 df.columns를 이용하면 깔끔하게 for loop를 구성할 수 있고,

2유형에서도 자주 쓰이므로 알아두면 좋다.

import pandas as pd

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

del_list = []
for col in df.columns:
    if sum(df[col].isnull())/len(df)>0.8:
        del_list.append(col)

for col in del_list:
    df = df.drop(columns=col)
    
print(df.info())

for col in df['city'].unique():
    avg = df[df['city']==col]['f1'].median()
    df.loc[(df['city']==col) & (df['f1'].isnull()), 'f1'] = avg

print(df['f1'].mean())

 

3. T1-9. 수치형 변수 표준화

이번엔 변수를 표준화 (정규화) 하는 문제로, 라이브러리 임포트만 잘 해주면 쉽게 해결할 수 있다.

T1-9. 수치형 변수 표준화는 아래처럼 해결했으며, fit_transform 내부의 df에서 대괄호를 두개 쓰는 것만 주의하면 된다.

 

만약 Z정규화가 아니라 min-max로 해야한다면 MinMaxScaler를 임포트하여 동일한 방식으로 사용하면 된다.

import pandas as pd
from sklearn.preprocessing import StandardScaler

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

scaler = StandardScaler()
df['f5'] = scaler.fit_transform(df[['f5']])
print(df['f5'].median())

 

'Challenge' 카테고리의 다른 글
  • [2024년 2회] 정보처리기사 실기 후기
  • [빅데이터분석기사] 실기 제2유형 정리
  • [2024년 1회] 빅데이터분석기사 필기 후기
  • [2024년 1회] 정보처리기사 필기 후기
LucPle
LucPle
Waking Up Early :P / Ajou Univ
  • LucPle
    토끼의 발자취
    LucPle
  • 전체
    오늘
    어제
    • 분류 전체보기 (62)
      • GDSC Ajou (9)
      • Algorithm (15)
      • Lab (2)
      • Challenge (10)
      • Event (3)
      • Tips (4)
      • Daily (11)
      • 병원 (8)
  • 블로그 메뉴

    • Solved.ac
    • LeetCode
    • Kaggle
    • Manage
    • 홈
    • 태그
    • 미디어로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    삼성안과
    리트코드
    ㅅㅅ안과
    라식
    leetcode
    GDSC
    백준
    빅데이터분석기사
    파이썬
    Google Solution Challenge 2023
    Daily LeetCoding Challenge
    라섹후기
    아주대학교 프로그래밍 경시대회
    Python
    라섹
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LucPle
[빅데이터분석기사] 실기 제1유형 정리
상단으로

티스토리툴바