320x100
* 인프런의 '퇴근후딴짓'님의 강의를 참고하였습니다. *
[문제1] f1컬럼의 결측치는 중앙값으로 대체하고, 나머지 결측치가 있는 데이터(행)을 모두 제거하고, 앞에서부터 70%데이터 중 views 컬럼의 3사분위 수에서 1사분위 수를 뺀 값을 구하시오.(단, 데이터70%지점은 정수형 변환)
# 라이브러리 및 데이터 읽어오기
import pandas as pd
df = pd.read_csv('members.csv')
# print(df.head())
# f1 컬럼 결측치 확인 및 중앙값 찾아서 대체
# print(df.isnull().sum())
# print(df.shape)
m = df['f1'].median()
# print(m)
df['f1'] = df['f1'].fillna(m)
# print(df.isnull().sum())
# print(df.shape)
# 결측치 확인 및 결측치 데이터(행) 제거
df = df.dropna()
# print(df.isnull().sum())
# print(df.shape)
# 70% 데이터 중 views 컬럼의 3사분위 - 1사분위 뺀 값 구하기
a = int(len(df)*0.7)
# print(a)
df = df.iloc[:a]
# print(df)
Q3 = df['views'].quantile(.75)
Q1 = df['views'].quantile(.25)
print(abs(Q3-Q1))
320x100
[문제2] 주어진 데이터에서 결측치가 30%이상 되는 컬럼을 찾고 해당 컬럼에 결측치가 있는 데이터(행)을 삭제함. 그리고 30%미만, 20%이상인 결측치가 있는 컬럼은 최빈값으로 값을 대체하고, f3컬럼의 gold 값을 가진 데이터의 수를 출력하세요.
# 라이브러리 및 데이터 읽기
import pandas as pd
df = pd.read_csv('members.csv')
# print(df.head())
# 결측치가 30% 이상 되는 컬럼 찾기
# print(df.isnull().sum())
# print(df.shape)
len(df)*0.3
# f1 컬럼에 결측치가 있는 데이터(행) 삭제
# print(df.shape)
df= df.dropna(subset=['f1'])
# print(df.shape)
# f3 컬럼 30%미만, 20% 이상인 결측치가 있는 컬럼은 최빈값으로 대체
# df['f3'].mode()[0]
# print(df.head())
df['f3'] = df['f3'].fillna(df['f3'].mode()[0])
# print(df.head())
# print(df.isnull().sum())
# 'f3'컬럼의 'gold' 값을 가진 데이터 수를 출력하세요.
cond1 = df['f3'] == 'gold'
print(len(df[cond1]))
반응형
[문제3] views 컬럼에 결측치가 있는 데이터(행)을 삭제하고, f3컬럼의 결측치는 0, silver는 1, gold는 2, vip는 3으로 변환한 후 f3 컬럼의 총 합을 정수형으로 출력하시오.
import pandas as pd
df = pd.read_csv('members.csv')
# print(df.head())
# views 컬럼에 결측치가 있는 데이터(행) 삭제
# print(df.isnull().sum())
# print(df.shape)
df = df.dropna(subset=['views'])
# print(df.isnull().sum())
# print(df.shape)
ㅇ 방법1 : replace 활용
import numpy as np
# print(df.head(7))
df['f3'] = df['f3'].replace(np.nan,0).replace('silver',1).replace('gold',2).replace('vip',3)
# df['f3'] = df['f3'].replace('silver',1)
# df['f3'] = df['f3'].replace('gold',2)
# df['f3'] = df['f3'].replace('vip',3)
# print(df.head(7))
print(df['f3'].sum())
ㅇ 방법2 : map 활용
#map
dict_list = {np.nan:0, 'silver':1, 'gold':2, 'vip':3}
df['f3'] = df['f3'].map(dict_list)
print(df['f3'].sum())
ㅇ 방법3 : 조건 활용
r1 = sum(df['f3'] == 'silver') * 1
r2 = sum(df['f3'] == 'gold') * 2
r3 = sum(df['f3'] == 'vip') * 3
print(r1 + r2 + r3)
2023.06.12 - [자격증공부/빅데이터분석기사] - [빅데이터분석기사][작업형1] 판다스 문법 활용 요약
320x100
반응형
'자격증공부 > 빅데이터분석기사' 카테고리의 다른 글
[빅데이터분석기사] 작업형1 문제유형 (기초통계, 그룹통계, 날짜) (0) | 2023.06.07 |
---|---|
[빅데이터분석기사] 작업형1 문제유형 (이상치, 기초통계) (0) | 2023.05.24 |
[빅데이터분석기사] 작업형1 기출문제 3회 (기초통계, 결측치) (0) | 2023.05.22 |
[빅데이터분석기사] 작업형1 기출문제 2회 (이상치, 기초통계) (0) | 2023.05.21 |
[빅데이터분석기사] 작업형1 예시문제 Min-Max Scale (0) | 2023.05.20 |