[python]DataFrame 객체 내 요소 반올림하기

mspark·2023년 7월 25일

DataFrame 내 전체 요소를 반올림해보자.

col = [C1, C2, C3, C4, C5]
row = [R1, R2, R3, R4, R5]
element = np.random.rand(5, 5) * 999 
#5*5 형태의 난수를 0~1 범위에서 균일한 분포로 생성. 아무 숫자를 만들기 위해 그냥 999를 곱함.
df = pd.DataFrame(data = element, index = row, columns = col)
print(df)

다음과 같은 결과가 나온다.

            C1          C2          C3          C4          C5
R1  696.761214  128.646043  750.025716  386.404426  914.701789
R2  534.441934  728.426920  283.966216   20.687586  447.115523
R3  603.566128  252.030830   20.503158  224.527961  376.361116
R4  855.718702   79.776198  559.481970   66.475431  644.877529
R5  584.116974  910.260535   39.959175  816.038014  810.668730

이때, 'df(DataFrame).round(decimals = 0)'함수를 사용

decimals로 소수점 자리를 조정할 수 있다. 소수 n번째 자리 까지 반올림한다는 뜻.
음수를 활용하면 10의 n승 자리를 반올림 할 수 있다.

예시 :

print(df.round(0))
       C1     C2     C3     C4     C5
R1  725.0  569.0   81.0  235.0  208.0
R2  756.0  633.0  463.0  693.0  106.0
R3  327.0  929.0  886.0  667.0  775.0
R4  318.0  834.0  794.0  246.0  277.0
R5   47.0  658.0  967.0  352.0   83.0
print(df.round(1))
       C1     C2     C3     C4     C5
R1  725.0  569.1   81.4  234.7  207.7
R2  756.3  633.1  463.0  693.0  105.8
R3  327.3  928.6  886.4  667.0  775.2
R4  318.3  834.0  794.5  245.9  276.6
R5   46.6  657.9  966.8  351.7   82.5
print(df.round(2)) 
        C1      C2      C3      C4      C5
R1  725.03  569.13   81.36  234.74  207.73
R2  756.29  633.11  462.97  692.95  105.77
R3  327.25  928.56  886.40  667.03  775.21
R4  318.29  834.00  794.46  245.88  276.60
R5   46.58  657.91  966.76  351.71   82.51
print(df.round(-1)) 
       C1      C2     C3     C4     C5
R1  490.0   480.0  600.0  190.0  180.0
R2  340.0   650.0   80.0  980.0  620.0
R3  670.0   480.0  990.0  510.0  790.0
R4  290.0  1000.0   40.0  490.0  140.0
R5  550.0   330.0  240.0  780.0  240.0

1개의 댓글

comment-user-thumbnail
2023년 7월 25일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기