본문 바로가기

Study/class note

python / 반올림수 구하기(round)

068 반올림수 구하기(round)

파이썬 내장함수 round()는 인자로 입력된 숫자형 자리수에서 반올림한 결과를 리턴함.

예제

print(round(16.554))    # 소수점 첫번째 자리에서 반올림 => 17
print(rount(16.554, 0))   # 소수점 첫번째 자리에서 반올림 => 17
print(rount(16.554, 1))   # 소수점 두번째 자리에서 반올림 => 16.5
print(rount(16.554, 2))   # 소수점 세번째 자리에서 반올림 => 16.55

ㅇ파이썬에서 반올림 할 때 중요하게 알아야 하는 내용

print(round(142.5))   # 143이 아닌 142가 출력됨

파이썬은 짝수를 좋아함.

142.5  => 142

187.5 => 188

파이썬에서 이것을 해결하는 함수가 없음. 0.5일때는 짝수쪽으로 숫자가 바뀌고, 0.51일대는 그냥 반올림됨.

 

문제244. emp2.csv를 판다스 데이터프레임으로 만들어서 이름과 월급을 출력하시오.

import pandas as pd

emp = pd.read_csv("c:\\data\\emp2.csv")
emp[['ename','sal']]

문제245. 이름과 보너스를 출력하시오. 보너스는 자기 자신의 월급의 10%로 하시오.

emp['bonus'] = emp['sal']*0.1
emp[['ename','bonus']]

# .apply()를 이용해 쓰는 방법
def ten_bonus(num):
    return num*0.1

emp['bonus'] = emp['sal'].apply(ten_bonus)
emp[['ename','bonus']]

apply 함수를 사용하게 되면 emp['sal']의 데이터를 ten_bonus 함수에 하나씩 적용해서 bonus컬럼의 데이터를 구성하게 됨.

 

문제246. 보너스를 출력할때 소수점 첫번째 자리에서 반올림되어서 출력되게 하시오.

def ten_bonus(num):
    return num*1.245

emp['bonus'] = round(emp['sal'].apply(ten_bonus))
emp[['ename','bonus']]

문제247. 위의 출력되는 결과에서 bonus를 정수형으로 출력하시오.

def ten_bonus(num):
    return num*1.245

emp['bonus'] = round(emp['sal'].apply(ten_bonus)).astype('int')
emp[['ename','bonus']]

 

반응형