작성
·
32
0
'age' 컬럼의 이상치(소수점 나이와 음수나이, 0포함)를 제거하고
제거 전 후의 views 컬럼 표준편차를 더하시오 (최종 결과 값은 소수 둘째자리까지 출력, 셋째자리에서 반올림)
제가 생각한 이상치 제거는
1. 사분위수를 이용해서 1차적으로 이상치를 제거하고
1번을 통해 필터링 된 데이터에서 0, 음수, 소수 데이터를 제거
라고 생각했는데 아닌가요?
답은 우연인지 의도인지 둘다 8420.69 이 나오긴 했습니다
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p1/members.csv")
bef = df['views'].std()
#1
#0, 음수 제거 -> 소수 제거
# opt6_1 = df['age'] <= 0
# df= df[~opt6_1]
# opt6_2 = df['age'] % 1 == 0
# df = df[opt6_2]
# aft = df['views'].std()
# print(round(bef+aft, 2))
###### 8420.69 출력
#2
# 이상치 제거 -> 0,음수 제거 -> 소수제거
Q1 = df['age'].quantile(0.25)
Q3 = df['age'].quantile(0.75)
IQR = Q3 - Q1
cond1 = df['age'] > Q3 + (1.5 * IQR)
df = df[~cond1]
cond2 = df['age'] < Q1 - (1.5 * IQR)
df = df[~cond2]
cond3 = df['age'] <= 0
df = df[~cond3]
cond4 = df['age'] % 1 == 0
df = df[cond4]
aft = df['views'].std()
print(round(aft + bef, 2))
###### 8420.69 출력
작업형 같은 경우에는 풀이는 조금 이상하더라도 답이 맞으면 정답처리되나요?