728x90
반응형
문제1
- f1컬럼의 결측치는 중앙 값으로 대체하고
- 나머지 결측치가 있는 데이터(행)을 모두 제거하고,
- 앞에서부터 70% 데이터 중 views 컬럼의 3사분위 수에서 1사분위 수를 뺀 값을 구하시오
- (단, 데이터 70% 지점은 정수형(int) 변환)
👍결측치를 확인하는 방법 ➡️ df.isnull().sum()
👍 결측치 처리 후 확인 개수 확인하기 ➡️ print(df.shape)
👍 결측치가 있는 행 모두 삭제하기 ➡️ df.dropna()
👍 사분위수 구하기 ➡️ df.quantile(.25)
👍 데이터의 70% 선택하기 ➡️ df = df[:len(df)*0.7]
# your code
import pandas as pd
import numpy as np
df = pd.read_csv("members.csv")
# 결측치를 확인하는 방법
df.isnull().sum()
# f1 컬럼의 결측치는 중앙값으로 대체한다.
# df.info()
df["f1"] = df["f1"].fillna(df["f1"].median())
# 나머지 결측치가 있는 데이터 행을 모두 제거해 보자
print(df.shape)
df = df.dropna()
print(df.shape) # 앞뒤로 두면 결측치의 개수를 체크하자
# 앞에서 부터 70%의 데이터를 선택함
df = df[:int(len(df)*0.7)]
Q1 =df["views"].quantile(.25) #1분위수
Q3 = df["views"].quantile(.75) #3분위수
print(Q3-Q1)
문제2
- 주어진 데이터에서 결측치가 30%이상 되는 컬럼을 찾고 해당 컬럼에 결측치가 있는 데이터(행)를 삭제 함.
- 그리고 30% 미만, 20% 이상인 결측치가 있는 컬럼은 최빈값으로 값을 대체하고
- 'f3'컬럼의 'gold' 값을 가진 데이터 수를 출력하세요!
👍 특정 결측치를 삭제하기 ➡️ df.dropna(subset="column")
👍 최빈값 구하기 ➡️ df.mode()[0]
👍 결측치를 다른 값으로 대체하기 ➡️ df.fillna("something")
# your code
import pandas as pd
import numpy as np
df=pd.read_csv("members.csv")
print(df.isnull().sum()) # na 값을 보여줌
len(df)*0.3 # f1삭제, f3최빈값
df.shape
df=df.dropna(subset=['f1']) #특정 컬럼을 쓸때는 subset
df.shape
df['f3']= df['f3'].fillna(df['f3'].mode()[0]) #최빈값에는 [0] 해줘야해 !
#조건절을 넣어 길이를 세어보자
condition = df['f3'] == 'gold'
print(len(df[condition])) # 특히 시험은 print 문으로 써줘야함
문제3
- views 컬럼에 결측치가 있는 데이터(행)을 삭제하고,
- f3 컬럼의 결측치는 0, silver는 1, gold는 2, vip는 3 으로 변환한 후 총 합을 정수형으로 출력하시오
👍 결측치를 replace를 활용해서 채우기 ➡️ df["column"] = df[column].replace(np.nan,0
# your code
import pandas as pd
import numpy as np
df=pd.read_csv("members.csv")
#결측치의 개수를 알아보는 함수 , isnull 뒤에는 sum함수를 같이 써줘야함
# print(df.isnull().sum())
print(df.shape)
df=df.dropna(subset="views")
print(df.shape) # 개수가 4개 줄었다.
#----------------------------------------------------------
# replace로 풀기
df['f3']= df['f3'].replace(np.nan,0).replace('silver',0) #변경전/변경후
# map을 활용한 방법, dict를 사용해야해
dict_list={np.nan:0, 'silver':1, 'gold':2, 'vip':3}
df['f3'] =df['f3'].map(dict_list)
# 조건을 활용하는 방법
sum(df['f3'] == 'silver')*1 +sum(df['f3']=='gold')
728x90
'IT&게임 > 빅데이터분석기사(빅분기)' 카테고리의 다른 글
빅데이터분석기사 제2유형 : ① EDA (0) | 2024.06.04 |
---|---|
빅데이터 분석기사 - 1유형 예제문제 학습하기(결측치2) (0) | 2024.06.03 |
빅데이터분석기사 실기 공부하기- 제1유형 : 데이터 전처리② (0) | 2024.06.01 |
빅데이터분석기사 실기 공부하기- 제1유형 : 데이터 전처리① (0) | 2024.05.30 |
빅데이터분석기사 비전공자/직장인 공부 방법 및 후기 (0) | 2024.04.21 |
댓글