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

져니님의 프로필 이미지
져니

작성한 질문수

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

예시문제 작업형3(구 버전) / 가설검정

질문이 있습니다~~

해결된 질문

작성

·

139

0

기출2회를 풀고 있는데요

  • 주어진 데이터셋(members.csv)의 앞에서부터 순서대로 80% 데이터만 활용해 'f1'컬럼 결측치를 중앙값으로 채우기 전 후의 표준편차를 구하고, 두 표준편차 차이 계산하기 (단, 표본표준편차 기준, 두 표준편차 차이는 절대값으로 계산)

 

이 문제를 시험환경에서 풀면

len(df)*0.8 df = df.iloc[:80] df before = df['f1'].std() median1 = df['f1'].median() # 20.574853076621935 import numpy as np df['f1'] = df['f1'].fillna(median1) after = df['f1'].std() # 17.010788646613268

이게 한 창 안에서 한번에 코딩이 되면서

before과 after 둘다에 17.010 어쩌고가 들어가서

print(before-after) 을 하면 0이 되더라고요

 

실행은 한 코딩창 안에서 진행해야 하는데

그럼 숫자를 따로 저장해서 20.574 - 17.010 을 출력해야 하나요?

 

 

답변 2

1

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

median1을 덮어쓰면서 발생한 문제 같아요

네, 각 변수에 저장이 필요해요! 하나는 a, 하나는 b에 저장해서 계산하면됩니다.

 

더불어

중간값을 출력하는 습관은 매우 좋습니다.

시험에서는 정답만 찾으면 되기때문에 중간에 찾을 값을 계산해도 되나, 실수 방지를 위해 변수간의 계산을 추천합니다.

 

0

안녕하세요, 인프런 AI 인턴입니다.

져니님의 문제 상황은 데이터 처리과정에서 ‘f1’ 컬럼의 결측치를 중앙값으로 채우기 전과 후의 표준편차 차이를 계산하는 것과 관련이 있습니다. 이와 유사한 질문이 이전에도 올라온 적이 있어 그 답변을 참조하시면 도움이 될 것 같습니다.

이전 질문 중 하나에서도, 데이터 셋의 일부만 사용하여 결측치를 처리한 후 통계값(표준편차, 중앙값 등)을 계산하는 과정이 있었습니다. 특히, 해당 과정의 실행 순서나 코드의 사용 방법에 따라 결과값이 달라질 수 있음을 알 수 있습니다.

져니님의 경우, beforeafter를 계산하는 과정에서 동일한 창에서 코드를 실행할 때 이미 df['f1']의 데이터가 중앙값으로 결측치가 채워진 뒤에 before의 표준편차가 계산되기 때문에 동일한 값이 나왔을 가능성이 높습니다.

이와 유사한 상황과 해결 방법을 제시한 예제는 다음과 같습니다:

  • “2회 기출유형(작업형1), 문제2”에서는 데이터 처리 과정 중에 생긴 문제와 해당 문제에 대한 해결 방법을 설명하고 있습니다. 이 답변에서는 데이터를 다시 로드하는 방법을 제안하며, 같은 문제를 해결하는 데 있어 중요한 포인트를 다루고 있습니다.

진행하신 방법처럼 숫자를 따로 저장하는 것도 하나의 방법이 될 수 있습니다. 중요한 것은 결측치를 채우기 전의 데이터 상태를 확실히 저장해두었다가, 그 상태에서 필요한 계산을 진행하는 것입니다. 따라서, 결측치를 채우기 전의 before 값과 결측치를 채운 후의 after 값을 각각 다른 변수에 저장한 후 계산을 진행하는 것이 정확한 접근 방법입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

져니님의 프로필 이미지
져니

작성한 질문수

질문하기