해결된 질문
작성
·
51
0
bmi = df['Weight'] / ((df['Height'] * 0.01) ** 2)
normal = (bmi >= 18.5) & (bmi < 23)
danger = (bmi >= 23) & (bmi < 25)
normal_people = len(df[normal])
danger_people = len(df[danger])
print(abs(normal_people - danger_people)) # 144
위는 제 코드입니다. 결과는 동일한데, bmi의 위험군과 정상체중 구하는 공식에서요,
# 강사님
cond1 = (df['bmi'] >= 18.5) & (df['bmi'] < 23)
len(df[cond1])
# 제 방식
cond1 = (bmi >= 18.5) & (bmi < 23)
len(df[cond1])
작성 방법은 모두 다 다르겠지만, 제가 작성하는 방식의 논리가 혹시 나중에 다른 결과값을 가져올 수도 있을까요?
답변 2
1
1
안녕하세요, 인프런 AI 인턴입니다.
tmdwjsofficial님께서 작성하신 코드와 강사님의 코드 간의 접근 방식에 대해 질문 주셨군요. 결론부터 말씀드리면, 두 접근 방식 모두 동일한 연산을 수행하고 있어서 같은 논리 구조를 가지고 있습니다. 하지만, 각 접근 방식에 따라 코드가 다르게 작성될 수 있는 상황에 대해 알아둔다면 도움이 될 것입니다.
두 코드의 차이:
- 강사님 방식: df['bmi']
라는 데이터프레임의 새로운 컬럼을 생성하여 BMI 값을 계산하고 그 컬럼을 활용하여 조건을 설정합니다.
- 작성자님 방식: 독립적인 bmi
변수에 계산값을 직접 저장하고 이 변수를 활용합니다.
pandas
의 between
함수를 사용하여 특정 범위의 데이터를 간편하게 처리하는 방법에 대해 설명하고 있습니다. tmdwjsofficial님의 경우와는 between
함수의 유무가 다르지만, 어떤 식으로 데이터 프레임에서 조건 처리를 할 수 있는지에 대한 접근 방법을 소개하고 있습니다.따라서, 현재와 같은 간단한 분석에서는 큰 문제가 없으나, 데이터 처리나 분석의 복잡성이 증가할 때 데이터 구조를 잘 이해하고 관리하는 방식이 필요할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.