캐글 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
25
2
회귀 문제를 풀때 질문입니다.
0
31
1
불균형 처리 후 성능이 더 낮아졌다면,
0
43
2
실기 체험 제2유형 에러 문의
0
34
1
LIGHTGBM 으로 하면 pred값이 소수점 6자리까지 나오는게 맞나요
0
33
2
3번문제 등분산 가정
0
34
2
작업형3 target 형 변환 질문
0
29
2
[작업형1] 연습문제 섹션1 ~ 10 의 section4
0
23
3
원핫인코딩과 레이블 인코딩에서 concat
0
42
2
제2유형 질문입니다.
0
39
2
C()
0
36
2
작업형 2에서 strafity 적용 유무
0
43
2
수강 기간 연장 가능 여부 문의드립니다.
0
45
1
ols
0
36
2
2유형 작성관련 질문(일반 심화)
0
29
2
2유형 작성관련 질문
0
26
2
2유형 object컬럼 개수 다르면
0
36
2
코딩팡질문이요ㅠㅠ
0
36
2
관찰값과 기대값의 개념이 헷갈립니다.
0
19
2
작업형2 ID 컬럼 삭제 질문
0
38
2
2유형 작성관련 질문
0
27
2
memoryerror 질문
0
20
2
작업형 유형2 이렇게 고정 템플릿으로 가져가도 될까요?
0
37
1
ID 삭제 필수 인가요?
0
33
3





