Py) Pandas - Styling-04

Py) Pandas - Styling-04

Python의 Pandas는 Jupyter Notebook에서 출력되는 DataFrame을 꾸밀 수 있도록 styling 이라는 기능을 제공하고 있다. 엑셀의 셀 서식과 같이 값 표기를 조정하는 방법을 알아보자.


이번에는 엑셀의 셀 서식 설정처럼 값 표기를 수정해보도록 한다.

데이터 준비

먼저 다음과 같이 데이터를 준비한다.

1
2
3
4
5
6
7
8
9
10
import pandas as pd
import numpy as np

np.random.seed(123)
df1 = pd.DataFrame(np.random.uniform(size = (3, 2)).round(4),
columns = ["A", "B"])
df2 = pd.DataFrame(np.random.uniform(low = 2000, high = 20000, size = (3, 2)).astype("int"),
columns = ["C", "D"])
df = pd.concat([df1, df2], axis = 1)
df
A B C D
0 0.6965 0.2861 19653 14326
1 0.2269 0.5513 10656 9058
2 0.7195 0.4231 8177 15122

다음과 같이 style accessor의 .format() 메서드를 사용하여 각 값의 앞뒤로 글자를 추가해보자.

1
df.style.format("ㅎㅎㅎ{:}ㅋㅋㅋ")
A B C D
0 ㅎㅎㅎ0.6965ㅋㅋㅋ ㅎㅎㅎ0.2861ㅋㅋㅋ ㅎㅎㅎ19653ㅋㅋㅋ ㅎㅎㅎ14326ㅋㅋㅋ
1 ㅎㅎㅎ0.2269ㅋㅋㅋ ㅎㅎㅎ0.5513ㅋㅋㅋ ㅎㅎㅎ10656ㅋㅋㅋ ㅎㅎㅎ9058ㅋㅋㅋ
2 ㅎㅎㅎ0.7195ㅋㅋㅋ ㅎㅎㅎ0.4231ㅋㅋㅋ ㅎㅎㅎ8177ㅋㅋㅋ ㅎㅎㅎ15122ㅋㅋㅋ

이번엔 좀 더 멀쩡한 형식으로 바꿔보자. 딕셔너리를 활용하여 A와 C변수에만 양식을 지정한 결과는 다음과 같다.

1
df.style.format(dict(A = "정확도: {:.3%}", C = "{:}점"))
A B C D
0 정확도: 69.650% 0.286100 19653점 14326
1 정확도: 22.690% 0.551300 10656점 9058
2 정확도: 71.950% 0.423100 8177점 15122

백분율 표기와 더불어 화폐 표기법을 적용한 결과는 다음과 같다.

1
2
style_dict = dict(A = "{:.2}%", B = "{:.2}%", C = "{:,}원", D = "{:,}$")
df.style.format(style_dict)
A B C D
0 0.7% 0.29% 19,653원 14,326$
1 0.23% 0.55% 10,656원 9,058$
2 0.72% 0.42% 8,177원 15,122$

<Python Pandas Styling 시리즈>
Python Pandas Styling - 01
Python Pandas Styling - 02
Python Pandas Styling - 03
Python Pandas Styling - 04

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×