• 카테고리

    질문 & 답변
  • 세부 분야

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

  • 해결 여부

    해결됨

작업형1 모의고사 3 풀이 질문

23.05.21 14:50 작성 조회수 94

1

안녕하세요!

섹션 5. "작업형1" 과 구슬 게임의 <작업형1 모의고사 3> 강의의 아래 문제풀이 중

강사님 풀이 방법과 같이 첫번째 조건(cond1)과 두번째 조건(cond2)의 값을 각각 r1, r2로 받지 않고,

cond1 과 cond2의 or 조건으로 한 번에 출력하고, True 값을 sum 하면 왜 결과값이 왜 달라지는지 이해가 안 되어 문의드립니다. (아래 코드 참고 부탁드립니다)

답 : 192 (저의 풀이대로 하면 결과값 : 150)

 

문제7

  • index '2001' 데이터(행)의 평균보다 큰 값의 수와

  • index '2003' 데이터(행)의 평균보다 작은 값의 수를 더하시오

 

강사님 풀이

# 풀이
df = pd.read_csv("data.csv", index_col="Unnamed: 0")

m2001 = df.loc[2001].mean()
cond = df.loc[2001] > m2001
r1 = sum(cond) # 100

m2003 = df.loc[2003].mean()
cond = df.loc[2003] < m2003
r2 = sum(cond) # 92

print(r1+r2) # 결과값 192

 

제 코드

# 풀이
df = pd.read_csv("data.csv", index_col="Unnamed: 0")

m2001 = df.loc[2001].mean()
cond1 = df.loc[2001] > m2001

m2003 = df.loc[2003].mean()
cond2 = df.loc[2003] < m2003

sum(cond1|cond2) # 결과값 150

 

답변 1

답변을 작성해보세요.

0

"또는"을 활용했을 때와 위 코드는 다른 결과를 보여주는 것이 맞습니다.

A그룹(20개)과 B그룹(10개)이 있을 때 교집합 되는 부분이 있을 수도 있어요

A그룹이거나 B그룹인 데이터 수를 찾을 때는 30이 아니라 교집합되는 부분이 5라면

A 또는 B로 했을 때는 25가 되겠지요.

설명이 어렵거나 이해가 되었을까요? 이해가 안된다면 답글달아주세요

다시 설명해드릴게요! 감사합니다 💪