해결된 질문
24.05.30 09:17 작성
·
102
0
코랩에서 [py] T1-1. 이상치를 찾아라(IQR활용) Expected Questions 문제입니다
아래 풀이로 진행했을 때 정답이 다르게 나오는데 혹시 어느 부분에서 차이가 발생한건지 알 수 있을까요??
import pandas as pd
df = pd.read_csv("train.csv")
# df.info()
# df.head()
# df.isnull().sum()
# IQR을 활용해 Fare컬럼의 이상치를 찾고,
# outlier1 = 1q - 1.5 * iqr
# outlier2 = 3q + 1.5 * iqr
# iqr = 3q - 1q
q1 = df["Fare"].quantile(.25)
q3 = df["Fare"].quantile(.25)
iqr = q3 - q1
# outlier1 = df["Fare"] < (q1 - 1.5 * iqr)
# outlier2 = df["Fare"] > (q3 + 1.5 * iqr)
q1 - 1.5 * iqr, q3 + 1.5 * iqr
outlier1 = df[df["Fare"] < (q1 - 1.5 * iqr)]
outlier2 = df[df["Fare"] > (q3 + 1.5 * iqr)]
# # 이상치 데이터의 여성 수를 구하시오
len(outlier1["Sex"] == "female") + len(outlier2["Sex"] == "female")
답변 2
0
2024. 05. 30. 10:34
오타가 있었군요 ㅠㅠ
해당 부분 수정했는데 여전히 답이 다르게 나옵니다!ㅠㅠ
# your code
import pandas as pd
df = pd.read_csv("train.csv")
# df.info()
# df.head()
# df.isnull().sum()
# IQR을 활용해 Fare컬럼의 이상치를 찾고,
# outlier1 = 1q - 1.5 * iqr
# outlier2 = 3q + 1.5 * iqr
# iqr = 3q - 1q
q1 = df["Fare"].quantile(.25)
q3 = df["Fare"].quantile(.75)
iqr = q3 - q1
outlier1 = df[df["Fare"] < (q1 - 1.5 * iqr)]
outlier2 = df[df["Fare"] > (q3 + 1.5 * iqr)]
# q1 - 1.5 * iqr, q3 + 1.5 * iqr
# # 이상치 데이터의 여성 수를 구하시오
len(outlier1["Sex"] == "female") + len(outlier2["Sex"] == "female")
0
2024. 05. 30. 10:27
q1 = df["Fare"].quantile(.25)
q3 = df["Fare"].quantile(.25)
가 동일한 값으로 들어갔네요! 수정이 필요해요!
2024. 05. 31. 12:45
len(outlier1["Sex"] == "female") + len(outlier2["Sex"] == "female")
에서 len()대신 sum()을 사용해야 합니다.
len() : True도 1개, False도 1개로 모든 데이터 수를 카운트 합니다.
sum(): True는 1, False는 0으로 True의 수만 계산됩니다.
2024. 05. 30. 21:27
오타가 있었군요 ㅠㅠ
해당 부분 수정했는데 여전히 답이 다르게 나옵니다!ㅠㅠ