해결된 질문
작성
·
156
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가 되겠지요.
설명이 어렵거나 이해가 되었을까요? 이해가 안된다면 답글달아주세요
다시 설명해드릴게요! 감사합니다 💪