목차
파이썬으로 데이터의 특성을 확인하기 위해 일반적으로 matplotlib의 pyplot을 이용하여 가시화를 하게 됩니다. 데이터의 양이 많을 경우에는 해당 방법이 좋긴 하지만 가시화 코드를 별도로 구성해야 하기 때문에 조금의 시간이 더 듭니다. dataframe에서 style이란 모듈을 제공하고 있는데, dataframe을 단순히 출력해 주는 것만으로도 데이터의 특성을 확인할 수 있게 해 줍니다. 사용방법과 어떻게 특성을 확인할 수 있는지 확인해 보도록 하겠습니다.
1. DataFrame.style이란?
DataFrame.style은 Pandas에서 제공하는 기능으로, 데이터프레임의 시각적인 표현을 지원하는 객체입니다. 이를 사용하여 데이터프레임을 색상, 글꼴, 배경 등의 스타일로 꾸밀 수 있습니다. 주로 데이터프레임을 시각화하거나 보고서 작성에 데이터를 첨부할 때 활용할 수 있습니다. style에 포함되어 있는 몇 가지 함수들에 대해 각각의 예제코드와 같이 설명드리겠습니다.
2. background_gradient
데이터 값에 따라 배경색을 그라데이션으로 표현합니다. 각 함수의 특징을 확인하기 위한 dataframe을 임의의 숫자를 넣어 구성하였습니다.
import pandas as pd
import numpy as np
# 예제 DataFrame 생성
data = {'A': np.random.rand(5),
'B': np.random.rand(5),
'C': np.random.rand(5)}
df = pd.DataFrame(data)
# 배경색 그라데이션 적용
styled_df = df.style.background_gradient()
# 스타일링 된 DataFrame 출력
styled_df
DataFrame.style.background_gradient()의 결과는 아래의 이미지와 같습니다. gradient의 의미는 '기울기' 또는 '경도'입니다. 해당 데이터 프레임의 데이터에서 작은 값을 흰색으로 시작해서 값이 높아질수록 점점 짙은 색으로 배경을 칠해 주는 함수입니다.
3. highlight_max / highlight_min
각 열 또는 행에서 가장 큰 값 또는 가장 작은 값을 강조 표시합니다. highlight_max와 highlight_min 함수는 축을 지정해 줘야 합니다. 'axis=0'은 칼럼을 기준으로 '1'은 행을 기준으로 합니다.
import pandas as pd
import numpy as np
# 예제 DataFrame 생성
data = {'A': np.random.rand(5),
'B': np.random.rand(5),
'C': np.random.rand(5)}
df = pd.DataFrame(data)
# 열별로 가장 큰 값 강조 표시
styled_df = df.style.highlight_max(axis=0)
# 스타일링 된 DataFrame 출력
styled_df
위의 예제 코드의 결과는 아래의 이미지와 같습니다. 'axis=0'으로 하니 칼럼에서 제일 큰 값을 노란색 배경으로 하이라이트 하여 출력합니다.
4. bar
수평 막대그래프를 생성하여 값의 상대적 크기를 시각화합니다. 단순히 데이터 프레임을 출력하는 것만으로 데이터 크기의 분포를 확인할 수 있어 보고 자료 작성에 매우 유용하게 사용됩니다.
import pandas as pd
import numpy as np
# 예제 DataFrame 생성
data = {'A': np.random.rand(5),
'B': np.random.rand(5),
'C': np.random.rand(5)}
df = pd.DataFrame(data)
# 수평 막대그래프로 값 시각화
styled_df = df.style.bar()
# 스타일링 된 DataFrame 출력
styled_df
위의 코드의 출력 결과물은 아래와 같으며, 값의 크기에 따른 바의 크기는 전체 데이터를 기준으로 만들어집니다.
5. highlight_null
누락된 값(null) 이 있는 셀을 강조 표시합니다. 누락된 값이 아주 적게 있을 경우 해당 함수를 이용하여 쉽게 찾아볼 수 있습니다.
import pandas as pd
# 예제 DataFrame 생성
data = {'A': [1, 2, None, 4, 5],
'B': [6, None, 8, 9, 10],
'C': [11, 12, 13, None, 15]}
df = pd.DataFrame(data)
# 누락된 값 강조 표시
styled_df = df.style.highlight_null()
# 스타일링된 DataFrame 출력
styled_df
데이터 프레임에서 'None'으로 입력된 값에 대해 빨간색으로 nan 표기를 해줍니다.
6. set_properties
스타일을 설정하기 위한 속성들을 지정합니다. 예를 들어 글꼴, 텍스트 정렬 등을 변경할 수 있습니다. 데이터 프레임의 style은 데이터 프레임을 발표 자료 등에 첨부하기 위함이 큽니다. 파이썬에서 제공해 주는 폰트 속성으로 이쁜 자료를 만들기에는 무리가 있습니다. 그럴 경우 해당 함수를 이용하여 출력해 주면 됩니다.
import pandas as pd
import numpy as np
# 예제 DataFrame 생성
data = {'A': np.random.rand(5),
'B': np.random.rand(5),
'C': np.random.rand(5)}
df = pd.DataFrame(data)
# 속성 설정
styled_df = df.style.set_properties(**{'text-align': 'right',
'font-size': '12pt'})
# 스타일링된 DataFrame 출력
styled_df
이번 예제 코드에서는 폰트를 오른쪽으로 맞추고 폰트 사이즈를 '12'로 지정해 주었습니다.
7. 마치며
python의 데이터프레임을 이용하여 데이터를 불러오고 전처리 등을 해서 최종 결과물을 나타냈지만 이를 보고 자료 등에 첨부하기 위해 일반적으로 엑셀로 추출하여 엑셀에서 편집 작업을 하게 됩니다. 위에서 설명한 방법들을 이용하여 데이터 프레임의 출력 결과물을 바로 사용한다면 보고 자료가 한층 전문스러울 수 있습니다. style의 기능을 잘 활용해 보시기 바랍니다.