해결된 질문
작성
·
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()
코드가 정상적으로 동작하는지 확인이 필요합니다. 예시처럼 분리해서 사용하는 것을 권장드려요!!
본인의 방식으로 풀어보는 것은 좋은 방식입니다. 💪💪💪