• 카테고리

    질문 & 답변
  • 세부 분야

    자격증 (데이터 사이언스)

  • 해결 여부

    해결됨

모의문제 3 - 8번 문제 질문드립니다.

24.05.30 00:59 작성 조회수 120

0

8번 문제 복습 중 궁금증이 생겨서 질문드립니다.

1) cond = df.loc[2001] > m2001

r1 = sum(cond)

cond = df.loc[2003] < m2003

r2 = sum(cond)

print (r1+r2)

2) r1 = df.loc[2001] > m2001

r2 = df.loc[2003] < m2003

print (sum(r1+r2))

1) 같은 경우는 정답 풀이를 그대로 가져와서 출력 값이 202이고,

2) 같은 경우는 제가 다른 방법으로 풀어볼 수 있을까 하는 궁금증에서 적어봤습니다. 출력 값은 202가 아닌 150이 나왔습니다.

 

둘 다 같은 풀이법 같지만 출력 값이 다른 이유가 궁금해서 질문드립니다 !

답변 2

·

답변을 작성해보세요.

0

print (sum(r1+r2))은

조건(불리언)과 조건(불리언)의 + 로 합쳐서 sum()으로 계산한 결과로 잘못된 결과를 도출할 수 있어요


만약 True를 카운트 한다면 아래와 같이 작성해줘야 해요!

print (sum(r1)+ sum(r2))

 

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.05.30

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

조현우님의 질문과 유사한 상황에 관한 설명이 있어 답변드리겠습니다. 질문의 핵심은 특정 조건에 따른 데이터 수집 방법과 그 결과가 다르게 나오는 이유에 대한 궁금증입니다.

여러분이 질문하신 경우, 두 조건(cond)을 평가하여 결과를 합치는 방식에서 차이가 발생합니다. 첫 번째 방법은 조건을 각각 평가하고 각 조건에 맞는 데이터 수를 합치는 반면, 두 번째 방법은 두 조건을 동시에 평가하여 그 결과를 합치려 하고 있습니다. 이로 인해 출력 값에 차이가 발생할 수 있는데, 이 차이의 원인에 대해 다음 질문&답변 게시물에서 설명이 이루어진 바 있습니다.

  • 작업형1 모의고사 3 풀이 질문에서 두 조건을 따로 평가할 때와 두 조건의 결과를 합칠 때 발생하는 출력 값의 차이가 구체적으로 설명되어 있습니다. 해당 내용은 여기에서 확인할 수 있습니다: 작업형1 모의고사 3 풀이 질문

또한, 조건 평가 시 “and”와 “or” 연산의 사용이 결과에 영향을 줄 수 있음을 알아두는 것이 중요합니다. 이러한 점을 고려하여 문제를 접근하면 보다 명확한 이해에 도움이 될 것입니다.

질문자님이 제시한 두 번째 방법에서는 조건 결과(boolean)를 직접 합치는 것이 아니라, 두 조건의 참/거짓 값을 각각의 집합으로 해석하고 이를 합산하는 방식으로 풀어야 하기 때문에, 직접적인 합산이 아니라 조건에 따라 필터링 된 데이터의 수를 구한 후, 이를 합산해야 합니다.

두 풀이 방법에서 출력 값이 다르게 나온 이유에 대한 설명은 위 링크를 참고하시는 것이 좋겠습니다.

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

채널톡 아이콘