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

미미밍님의 프로필 이미지
미미밍

작성한 질문수

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

캐글 T1-16 문제 풀이중 질문드립니다.

해결된 질문

작성

·

178

0

선생님 안녕하세요~ 지금 T1 캐글 문제 풀어보고 있는데,

import pandas as pd

# 데이터 불러오기

df = pd.read_csv("../input/bigdatacertificationkr/basic1.csv")

df.head(5)

#f2가 0인 데이터 정렬

df2 = df.loc[df['f2']==0].sort_values('age', ascending = True)

#앞에서부터 20개 데이터 추출

df2 = df2.iloc[:19]

before = df2['f1'].var()

df2['f1']= df2['f1'].fillna(df2['f1'].min()).var()

after = df2['f1'].var()

print(round(after-before,2))

 

이렇게 했을 때 정답값이 저는 -390.68으로 나오는데, 선생님 풀이를 보면 정답 : 38.44으로 나오더라고요.

혹시 어디서 틀렸는지 알 수 있을까요?

 

앞에서부터 20개의 데이터 추출할때

저처럼 df2.iloc로 사용해도 무방한가요..?! ㅜㅜ

# 앞에서 부터 20개의 데이터 
df = df[:20]

답변 1

0

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

df2.iloc[:19]는 실제로 앞에서부터 19개의 데이터를 선택합니다. 20개의 데이터를 선택하려면 df2.iloc[:20]을 사용해야 합니다.

 

df2['f1'] = df2['f1'].fillna(df2['f1'].min()).var() 코드가 정상적으로 동작하는지 확인이 필요합니다. 예시처럼 분리해서 사용하는 것을 권장드려요!!

본인의 방식으로 풀어보는 것은 좋은 방식입니다. 💪💪💪

미미밍님의 프로필 이미지
미미밍

작성한 질문수

질문하기