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

shs4166님의 프로필 이미지
shs4166

작성한 질문수

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

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

기출2회 작업형1 문제3

작성

·

22

0

df.head()

mean = df['age'].mean()
std = df['age'].std()
lower = mean - (std*1.5)
upper = mean + (std*1.5)

cond1 = df['age'] < lower
cond2 = df['age'] > upper

print(df[cond1|cond2]['age'].sum())
# cond1 = (df['age'].mean() - (df['age'].std())*1.5) > df['age']
# cond2 = (df['age'].mean() + (df['age'].std())*1.5) < df['age']
# print(df[cond1|cond2]['age'].sum())

어떤 부분에서 틀린걸까요..?

답변 3

0

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

테스트 해봐도 결과가 동일합니다.

image.png

 

0

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

다른 방법으로 도전은 정말 응원합니다:)

에러가 아닌

수험생의 방법을 하나 하나 확인해 드릴 수 없다는 점 양해 부탁드려요!

정답이 출력 구해지지 않는다면 제가 권장드린 방법으로 연습부탁드립니다. 감사합니다.

0

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

질문하신 내용은 데이터프레임에서 특정 조건에 맞는 age 컬럼의 값을 합산하는데 어려움을 겪고 계신 것 같습니다. 제공하신 코드를 보면, 이상치를 찾기 위한 조건(cond1, cond2)을 정의하고, 이에 맞는 행의 age 값을 합산하려고 하고 있습니다. 아래에서 주의해야 할 점을 설명드리겠습니다.

주의할 점:

  1. 논리 연산자 사용: cond1 | cond2와 같은 논리 연산자를 사용할 때에는 괄호로 각 조건을 감싸주어야 합니다. 즉, (cond1) | (cond2)로 코드를 수정해야 합니다. 그래야 파이썬 내부에서 우선순위 없이 각 조건의 연산이 제대로 수행됩니다.

  2. 잘못된 조건 설정: 주석 처리된 부분의 조건이 맞지 않는 것 같습니다. cond1cond2는 모두 df['age'] < lower 또는 df['age'] > upper와 같이 설정하는 것이 적절합니다.

아래는 이 문제점을 반영한 수정 코드입니다:

mean = df['age'].mean()
std = df['age'].std()
lower = mean - (std * 1.5)
upper = mean + (std * 1.5)

cond1 = df['age'] < lower
cond2 = df['age'] > upper

# 조건을 각각 괄호로 감싸줍니다.
print(df[(cond1) | (cond2)]['age'].sum())

위의 코드를 사용하면, agelower 또는 upper를 벗어난 이상치에 대한 합이 계산됩니다.

이와 관련된 유사 질문과 답변은 아래 링크에서 확인하실 수 있습니다:
- 2회 기출유형(작업형1) 에서 문제3 - 이 게시물에서 조건 설정과 논리 연산자로 인한 합산 문제에 대해 상세히 다루고 있습니다.

이 설명이 shs4166님의 문제가 해결되는데 도움이 되기를 바랍니다. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

shs4166님의 프로필 이미지
shs4166

작성한 질문수

질문하기