// 퇴근후딴짓 님의 강의를 참고하였습니다. //
Dataset :
문제1) 종량제 봉투 종류가 '규격봉투'이고, 종량제 봉투 용도가 '음식물쓰레기'인 2L가격 평균을 출력하시오.
(단, 가격0 제외, 반올림 후 정수 출력)
import pandas as pd
df = pd.read_csv("5-1price.csv")
df
cond1 = df['2ℓ가격'] != 0
cond2 = df['종량제봉투종류'] == "규격봉투"
cond3 = df['종량제봉투용도'] == "음식물쓰레기"
df = df[cond1 & cond2 & cond3]
print(round(df['2ℓ가격'].mean()))
실행 결과 :
118
→ '2L가격'이 '0원'이 아닌 조건1 / '종량제봉투종류'가 '규격봉투'인 조건2 / '종량제봉투용도'가 '음식물쓰레기인 조건3
세 가지 조건을 만든다.
→ 세 가지 조건을 모두 만족하는 '2L가격' 컬럼의 평균을 mean() 함수로 구하고 round() 함수로 반올림하여 출력한다.
문제2) bmi를 계산하고, 수치가 정상인 사람 수와 위험체중인 사람 수의 차이를 절대값으로 구하시오. (정수로 출력)
- bmi(체질량지수): 몸무게(kg) / 키(m)의 제곱 단위 -
- Height: cm
- Weight: kg
- 저체중: BMI 18.5미만
- 정상체중: BMI 18.5이상 ~ 23미만
- 과체중 또는 위험체중: BMI 23 이상 ~ 25미만
- 비만체중: 25이상
import pandas as pd
df = pd.read_csv("5-2bmi.csv")
df
df['bmi'] = df['Weight'] / (df['Height']/100)**2
cond1 = (df['bmi'] >= 18.5) & (df['bmi'] < 23)
cond2 = (df['bmi'] >= 23) & (df['bmi'] < 25)
print(abs(len(df[cond1]) - len(df[cond2])))
실행 결과 :
144
→ Weight와 Height를 이용해 bmi를 구한다. (키는 cm로 되어있어 100으로 나눠 m로 만들어 줘야한다.)
→ bmi가 정상인 조건1 / bmi가 과체중인 조건2를 만든다.
→ 정상인 사람 수와 과체중인 사람의 수를 len() 함수를 사용해 구하고 뺀 후 abs() 함수를 사용해 절대값을 씌워 출력한다.
문제3) 순전입학생(순전입 학생 = 전입 학생 - 전출 학생)이 가장 많은 학교의 전체학생수를 정수로 출력하시오.
import pandas as pd
df = pd.read_csv("5-3student.csv")
df
df['순전입'] = df['전입학생수(계)'] - df['전출학생수(계)']
df = df.sort_values('순전입', ascending=False)
print(int(df.iloc[0,-2]))
실행 결과 :
230
→ '전입학생수'와 '전출학생수'를 이용해 '순전입'을 구한다.
→ '순전입' 컬럼을 sort_values(ascending=False) 함수를 사용해 내림차순으로 정렬한다.
→ iloc() 함수를 통해 첫 번째 행의 '전체학생수' 컬럼을 선택한 후 int를 씌워 출력하면 230명이 나온다.
'빅데이터분석기사 > 작업형1' 카테고리의 다른 글
[작업형1] 사분위수 / 절대값 / 조건 / datetime 변환 구하기 (0) | 2023.06.24 |
---|---|
[작업형1] 평균 / 행(row)별 합 / 고유값 수 구하기 (0) | 2023.06.22 |
[작업형1] 평균 / 그룹합 / datetime 변환 구하기 (0) | 2023.06.17 |
[작업형1] 결측치 대체 / 사분위수 / 표준편차 구하기 (0) | 2023.06.17 |
[작업형1] 결측치 대체 / 사분위수 구하기 (2) | 2023.06.17 |