본문 바로가기
판다스/판다스 팁

[pandas] 데이터 프레임에서 퍼센트(%)로 수치를 표기하는 방법

by 김판다t 2023. 5. 26.

Example Code

 

import pandas as pd
data = {'종가': {0: 1000, 1: 1200, 2: 1300, 3: 1100}, 
        '등락률': {0: 0.1, 1: 0.2, 2: 0.0833, 3: -0.1538}}
df = pd.DataFrame(data)
df

 

df :

 

 

Problem

 

 

아래 그림처럼 위 데이터 프레임에서 등락률을 소수점 아래 두자리만 표기하는 %로 나타내고자 한다 어떻게 해야 할까?

 

해결방법1

 

등락률의 데이터를 100을 곱한 뒤 : mul(100)

소수점 셋째 자리에서 반올림을 하고 : round(2)

문자열로 바꾸고 : astype('str')

%를 붙여주면 된다.

 

df['등락률'].mul(100).round(2).astype('str') + '%'

 

0      10.0%
1      20.0%
2      8.33%
3    -15.38%
Name: 등락률, dtype: object

 

 

 

해결방법2

 

연속적인 함수 사용이 싫다면 apply나 map을 이용해 lambda 함수를 적용해도 된다.

 

df['등락률'].map('{:.2%}'.format)

 

결과는 위와 같다. 소수점 세번째까지 표현하고 싶다면 .2%부분을 .3%로 수정하면 된다

 

 

 

 

 

어느 방법이든 위 결과인 시리즈로 등락률 열을 수정해주면 된다.

다만 이렇게 데이터를 바꿔도 되겠지만 가능하지만, 원본 데이터를 바꾼다는 것이 탐탁치 않다

 

 

해결방법3

 

display style을 바꾸어 데이터는 그대로 두면서, 출력만 %로 표기되는 것으로 바꿀 수도 있다

 

df.style.format({'등락률':'{:.2%}'.format})

 

수정하고 싶은 열의 이름과 소수점표현 format을 딕셔너리로 넣으면 된다

마찬가지로 소수점 세번째까지 표현하고 싶다면 .2%부분을 .3%로 수정하면 된다

 

 


 

교보문고 구매 페이지, 알라딘 구매 페이지yes24 구매 페이지