해결된 질문
작성
·
376
1
강의 듣고 혼자서 다시 풀어보는 도중에.. 질문이생겨 글남깁니다 ㅠㅠ
이상치를 벗어나는 값 찾기
cond1 = df['age'] < lower
cond2 = df['age'] > upper
여기까지는 이해가 가는데
여기서 이상치의 합을 구할떄
sum(cond1 + cond2) 를 하면 왜 안되는걸까요?
'age'컬럼에서 lower 보다 작은것, upper보다 큰것을 더한다는 의미에서 될것같기도한데..
sum(cond1 + cond2) 와
df[(cond1)|(cond2)]['age'].sum() 의 차이가 궁금합니다 ㅠㅠ
비전공자인지라 아직 개념이 부족하여 쓸데없는 질문을 많이드리는것같지만 ㅠㅠ 정확하게 공부하고싶어서 질문드립니다
답변 2
1
1
100개의 데이터(행)이 있을 때
df['age'] < lower의 결과는 조건에 맞으면 True 또는 False가 100개를 얻을 수 있어요
df['age'] > upper도 100개의 True 또는 False를 100개 얻을 수 있어요
True는 1이고 False는 0입니다.
sum(cond1 + cond2) 이렇게 할 경우 최대 200개가 됩니다. 잘못된 코드인거죠!
print(df[(cond1)|(cond2)]['age'].sum()) 를 풀어보면
조건이 (cond1)|(cond2)일 경우 cond1 또는 cond2 둘 중 하나라도 True이면 True입니다.
여기서 True인 데이터(행) 중에서 age 값만 모두 더하면 됩니다.
# print(df[(cond1)|(cond2)]['age'].sum())
cond3 = (cond1)|(cond2)
df = df[cond3]
print(df['age'].sum())