캐글 T1-23 추가질문
캐글에 올려주신 자료 중 T1-23 문제를 다시 풀어보고 있는데 선생님 답과 다른 답이 나와서 질문 드립니다.
선생님 풀이와 다른 부분은 10번째 값을 찾는 부분만 다른 코드로 했는데요
10번째 값은 88으로 같은데 중복값 제거 후 f1 중앙값이 75로 선생님 풀이의 값 77과는 다르게 나옵니다.
이유가 뭔지 알 수 있을까요?
# f1 결측치를 f1을 내림차순으로 소팅했을 때 10번째 인덱스에 위치한 값으로 채움df=df.sort_values('f1', ascending=False)df=df.reset_index()# print(df.head(10))a=df.loc[9,'f1']print(a)# print(df.isnull().sum())df['f1']=df['f1'].fillna(a)# print(df.isnull().sum())# age컬럼의 중복 제거 전 f1중앙값m1=df['f1'].median()print(m1)# age컬럼의 중복 제거 후 f1중앙값print(df.shape)df=df.drop_duplicates(subset=['age'])print(df.shape)m2=df['f1'].median()print(m2)print(abs(m1-m2))
답변 1
1
df.sort_values('f1', ascending=False)로 정렬하고 나서 중복을 제거하면, 제거되는 데이터의 순서가 변경될 수 있습니다.
중복 데이터 발생시 뒤에 나오는 데이터를 삭제는데 소팅된 이후에 삭제를 해서 달라진것이에요!
풀이의 문제는 없고 문제 수정이 필요하네요! 고민해보고 수정할게요 감사합니다.
0
답변 감사합니다!
정렬 후 중복제거한 순서는 선생님과 같은데 코드만 아래와 같이 달라요!
혹시 소팅할 때 작성한 코드로 인해서 값이 달라진 것일까요..?
df.sort_values('f1', ascending=False)
# f1데이터에서 10번째 큰 값으로 결측치를 채움
top10 = df['f1'].sort_values(ascending=False).iloc[9]
print(top10)
df['f1'] = df['f1'].fillna(top10)
질문 드립니다.
0
38
2
강의 내용 관련 질문드립니다~
0
35
2
수강 연장 문의
0
33
1
강의자료 일괄 다운로드
0
43
2
수강기간 연장 문의드립니다
0
29
1
list 문제 질문드립니다~
0
31
2
빅분기 실기 12회 재도전
0
40
1
강의 기간 연장 가능여부 검토 요청건
0
30
1
수강기간 연장 문의 드립니다
0
36
2
수강기간 연장 문의드립니다
0
47
2
질문이요
0
51
2
수강기간 연장 문의드립니다.
0
50
2
문제 3-2 질문드립니다
0
44
2
수강기간 연장 문의 드립니다.
0
58
2
변수, 칼럼 , df 구분
0
50
2
수강기간 연장 문의드립니다.
0
50
2
수강기간 연장 문의
0
48
2
수강기간 연장 문의드립니다.
0
42
2
수강기한 연장 문의
0
80
2
수강기간 연장 문의드립니다
0
57
2
결정트리에서 적절한 깊이 선택 후 시각화 과정에서 학습 데이터만 사용하는 이유
0
45
2
수강기간 연장 문의드립니다.
0
71
2
수강연장 문의
0
77
2
수강연장문의
0
53
2





