인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

ji_nhee님의 프로필 이미지
ji_nhee

작성한 질문수

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

2회 기출유형(작업형1)

2회 기출유형(작업형1) 에서 문제3

해결된 질문

작성

·

391

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

ji_nhee님의 프로필 이미지
ji_nhee
질문자

아! 이제 이해했습니다 ㅠㅠ 답변 감사드립니다!!

1

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

100개의 데이터(행)이 있을 때

  1. df['age'] < lower의 결과는 조건에 맞으면 True 또는 False가 100개를 얻을 수 있어요

  2. df['age'] > upper도 100개의 True 또는 False를 100개 얻을 수 있어요

  3. True는 1이고 False는 0입니다.

  4. sum(cond1 + cond2) 이렇게 할 경우 최대 200개가 됩니다. 잘못된 코드인거죠!

  5. print(df[(cond1)|(cond2)]['age'].sum()) 를 풀어보면

  6. 조건이 (cond1)|(cond2)일 경우 cond1 또는 cond2 둘 중 하나라도 True이면 True입니다.

  7. 여기서 True인 데이터(행) 중에서 age 값만 모두 더하면 됩니다.

    # print(df[(cond1)|(cond2)]['age'].sum())
    
    cond3 = (cond1)|(cond2)
    df = df[cond3]
    print(df['age'].sum())

 

ji_nhee님의 프로필 이미지
ji_nhee

작성한 질문수

질문하기