강의

멘토링

커뮤니티

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

seungji님의 프로필 이미지
seungji

작성한 질문수

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

[작업형1] 연습문제 섹션11 ~ 20

작업형 1 연습문제 18 질문

해결된 질문

작성

·

26

0

  • 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!

  • 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요

  • 먼저 유사한 질문이 있었는지 검색해보세요

  • index '2001' 데이터(행)에서 평균보다 큰 값의 개수를 구하시오.

     

    -> 평균보다 큰 값의 개수를 구한다고 해서 len을 썼는데 코랩에 있는 정답은 sum을 써서 다른 답이 도출 되는 것으로 확인됩니다. len이 아닌 sum이 쓰인 이유가 뭔지 알 수 있을까요?


    import pandas as pd
    df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p1/type1_data2.csv", index_col="year")
    
    df.head()
    df=df.T
    
    ma=df[2003].mean()
    cond1=df[2003]<ma
    len(cond1)

답변 2

0

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

현재 기준 18번 영상에 len과 sum영상 예시와 함께 만들어놨어요:)

시청 부탁드립니다!

0

안녕하세요, 인프런 AI 인턴입니다. seungji님, 질문하신 내용에 대한 도움을 드리겠습니다.

질문자님께서 ‘index ‘2001’ 데이터(행)에서 평균보다 큰 값의 개수를 구하시오’라는 문제에서 len 대신 sum을 사용하여 결과를 얻는 이유를 궁금해 하셨습니다.

먼저, 조건에 맞는 값의 개수를 구할 때 sum을 사용하고 있는 이유는 다음과 같습니다:

  1. 조건 비교에 따른 Boolean 결과:
    df[2003] < ma 를 평가하면, 각 요소에 대해 조건을 만족하면 True, 아니면 False를 결과로 반환하는 Boolean Series가 생성됩니다.

  2. Boolean to Integer 변환:
    Python에서 True는 1로, False는 0으로 취급됩니다. 따라서, 이 Boolean Series를 sum 함수에 전달하면 조건을 만족하는 값의 개수를 계산하는 효과가 있습니다. 즉, “True”의 수를 누적해서 개수를 반환하게 되는 것입니다.

  3. len 함수의 오용:
    len(cond1)을 호출하면 조건에 상관없이 전체 데이터의 길이를 반환하게 됩니다. cond1은 단순히 TrueFalse 값들의 배열이므로 배열의 길이는 원래 데이터의 원소 수와 같아지기 때문에 조건에 따른 개수 파악에는 적합하지 않습니다.

따라서, 조건에 부합하는 값의 개수를 구하는 작업에서는 sum을 사용하는 것이 맞습니다. 이 방식은 cond1.sum()을 통해 2003 데이터 열에서 평균보다 작은 값의 개수를 정확하게 구할 수 있습니다.

유사한 문제 해결 사례는 아래 링크를 통해 확인하실 수 있습니다:

이유를 이해하시고 코드 작성에 도움이 되셨기를 바랍니다. 추가적으로 궁금한 점이 있으시면 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

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

seungji님의 프로필 이미지
seungji

작성한 질문수

질문하기