인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

최보윤님의 프로필 이미지
최보윤

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

캐글(kaggle) 필사 전략

[질문] 캐글 T1-23 질문있습니다.

해결된 질문

작성

·

235

·

수정됨

0

안녕하세요.

캐글 T1-23 풀이 중 궁금한 것이 있어 질문드립니다.

 

저는 아래와 같이 풀이하였는데 정답은 2.5가 나오더라구요ㅠㅠ

import pandas as pd
df = pd.read_csv("/kaggle/input/bigdatacertificationkr/basic1.csv")

# f1 결측치 채우기
# print(df['f1'].isnull().sum()) # 31개
df = df.sort_values('f1', ascending=False)
# print(df.iloc[9][3]) # 88.0
df['f1'] = df['f1'].fillna(df.iloc[9][3])
# print(df['f1'].isnull().sum()) # 0개 

# age 중복 제거 전 f1 중앙값
med1 = df['f1'].median() # 77.5


# age 중복 제거
# print(df.shape) # 100개
df = df.drop_duplicates(subset=['age'])
# print(df.shape) # 71개됨.

# age 중복 제거 후 f1 중앙값
med2 = df['f1'].median() # 75.0


# 절대값으로
print(abs(med1-med2)) 

왜 답이 0.5가 나오지 않는지 해결되지 않아 문의드립니다. ㅠㅠ

답변 1

1

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

아래 코드로 인해 중복 제거가 다르게 진행되었어요

df = df.sort_values('f1', ascending=False)

작성한 코드는 정렬 후에 drop_duplicates 을 적용하면서

처음 발견된 데이터를 유지하고 나머지 중복을 제거하는 동작에서 다른 값이 제거 되었어요

문제에서 이 부분에 대한 오해의 소지가 있네요!

알려주셔서 감사합니다.

정렬이란 말은 빼고 결측치는 f1의 데이터 중 10번째로 큰 값으로 채움 으로 변경하겠습니다.

최보윤님의 프로필 이미지
최보윤

작성한 질문수

질문하기