본문 바로가기

자격증공부/빅데이터분석기사

[빅데이터분석기사] 작업형1 문제유형 (이상치, 기초통계)

320x100

빅데이터분석기사

* 인프런의 퇴근후딴짓 님의 강의를 참고하였습니다. *

 

[문제1] 주어진 데이터에서 자료형(type)이 object인 컬럼은 삭제하고, 결측치는 0으로 대체한다. 행 단위로 합한 다음 그 값이 3000보다 큰 값의 데이터 수를 구하시오('age', 'f1', 'f2', 'f5', 'views'의 각 행별 합)

import pandas as pd
df = pd.read_csv{'members.csv')
print(df.head())

빅데이터분석기사

ㅇ 방법1 : object 컬럼이 포함된 types 삭제

cols = df.select_dtypes(include='object').columns
print(cols)
df = df.drop(cols, axis=1)
print(df.head())

 

빅데이터분석기사

ㅇ 방법2 : object 컬럼이 포함되지 않은 컬럼으로 df 구성

cols = df.select_dtypes(exclude='object').columns
print(cols)
df = df[cols]
print(df.head())

빅데이터분석기사

ㅇ 결측치 제거, 행 단위로 합한 다음 그 값이 30000보다 큰 값의 데이터 수 구하기

 - 행/열 변환 : df.T

df = df.fillna(0)
df = df.T
print(df.head())
print(sum(df.sum() > 3000))

빅데이터분석기사

320x100

 

[문제2] 데이터에서 IQR을 활용해 views 칼럼의 이상치를 찾고, 이상치 데이터의 수를 구하시오.

import pandas as pd
df = pd.read_csv("members.csv")

q3 = df['views'].quantile(.75)
q1 = df['views'].quantile(.25)

IQR = q3 - q1
# print(IQR)

line1 = q1 - 1.5 * IQR
line2 = q3 + 1.5 * IQR


print(sum(df['views'] < line1) + sum(df['views'] > line2))
반응형

 

[문제3] 'age' 컬럼의 이상치(소수점 나이와 음수나이, 0 포함)를 제거하고, 제거 전/후의 views 컬럼 표준편차를 더하시오(최종 결과값은 소수둘째자리까지 출력, 셋쨰자리에서 반올림)

import pandas as pd
df = pd.read_csv("members.csv")

r1 = df['views'].std()

cond = df['age'] <= 0
# print(df.shape)
df = df[~cond]
# print(df.shape)

cond = df['age'] == round(df['age'],0)
df = df[cond]
# print(df.shape)

r2 = df['views'].std()

print(round(r1 + r2, 2))

 

2023.06.12 - [자격증공부/빅데이터분석기사] - [빅데이터분석기사][작업형1] 판다스 문법 활용 요약

 

[빅데이터분석기사][작업형1] 판다스 문법 활용 요약

1. 라이브러리 및 데이터 읽어오기 ㅇ 컬럼명 확인할 수 있도록 세팅하기 import pandas as pd df = pd.read_csv('ㅇㅇㅇㅇ.csv') pd.set_option('display.max_columns', None) #컬럼명 전부 확인할 수 있도록 셋팅하기 2.

inform.workhyo.com

 

 

 

 

 

320x100
반응형