인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

이현진님의 프로필 이미지
이현진

작성한 질문수

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

작업형 1 모의문제 1 - 문제 2 질문있습니다.

해결된 질문

작성

·

281

·

수정됨

1

강사님.. ㅎㅎ 제가 또 작성했는데 결과값이 다르게 나와서요 ㅜㅜ 한번 검토 부탁드립니다!!

제 결과값은 79가 나왔어요! 정답은 56이구요!!

# your code
import pandas as pd
import numpy as np

df=pd.read_csv('members.csv')
# df.head()

# 주어진 데이터에서 결측치가 30%이상 되는 컬럼을 찾고 해당 컬럼에 결측치가 있는 데이터(행)를 삭제 함.
# print(len(df)) # 100
# 결측치가 30% 이상 = 30개 이상
# print(df.isnull().sum())
# f1 - 31개 , f3 -28개, views-4개 확인
# 따라서 f1은 결측치 있는 행 제거, f3은 최빈값으로 값 대체

df['f1'] = df['f1'].dropna()
df['f3'] = df['f3'].fillna(df['f3'].mode()[0])

cond = (df['f3'] == 'gold')

ans = len(df[cond])
print(ans)

답변 1

0

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

이 오답을 계기로 len 과 sum의 차이를 이해했으면 하는 바램이에요 🤩

 

True Flase True 일 때

len은 3 (개수)

sum은 2 (true가 1임)

이현진님의 프로필 이미지
이현진
질문자

'f3'컬럼의 'gold' 값을 가진 데이터 수를 출력하세요!

이고,, 제가 f3의 값이 gold인 행만 보여달라고 조건을 주었으면

전부 true 값일 테니까

sum으로 구해도, len으로 구해도 결과값이 똑같이 나와야 하는건 아닌가요..??

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

이 상황에서 len을 사용하려면 len(df[df[cond]])가 됩니다.
sum은 합을 계산하고 False는 0으로 합에 포함되지 않아요
len은 모든 행의 수를 반환해요!!😁

이현진님의 프로필 이미지
이현진
질문자

오 이제 알겠네용 ㅜㅜ 감사합니다!! ❤️

이현진님의 프로필 이미지
이현진

작성한 질문수

질문하기