2015년 11월 21일 배포된 0.17.1 버전의 새롭게 추가된 기능인 스타일(Style)의 기능을 알아본다.
스타일은 테이블과 플롯의 장점을 잘 버무려 준다.
본문은 스타일에 대한 직관적인 사용 예제를 다룬다.
먼저 샘플 데이터 셋을 만들었다.
from sklearn import datasets
import pandas as pd
iris = datasets.load_iris()
df = pd.DataFrame(iris.data,columns=iris.feature_names).head(6)
df.columns = ['SepalL','SepalW','PetalL','PetalW']
* 단순히 기능 테스트를 위한 데이터를 추렸다.
SepalL | SepalW | PetalL | PetalW | |
---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 |
1 | 4.9 | 3.0 | 1.4 | 0.2 |
2 | 4.7 | 3.2 | 1.3 | 0.2 |
3 | 4.6 | 3.1 | 1.5 | 0.2 |
4 | 5.0 | 3.6 | 1.4 | 0.2 |
5 | 5.4 | 3.9 | 1.7 | 0.4 |
다양한 스타일을 적용하는 예제이다.
수치의 크기를 색상 온도로 보는 것
df.style.background_gradient(cmap='magma', low=1)
* cmap은 colormap의 약자이고, 색상을 정의한다.
* cmap은 colormap의 약자이고, 색상을 정의한다.
SepalL | SepalW | PetalL | PetalW | |
---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 |
1 | 4.9 | 3.0 | 1.4 | 0.2 |
2 | 4.7 | 3.2 | 1.3 | 0.2 |
3 | 4.6 | 3.1 | 1.5 | 0.2 |
4 | 5.0 | 3.6 | 1.4 | 0.2 |
5 | 5.4 | 3.9 | 1.7 | 0.4 |
수치를 막대기둥 형태로 보는 것
df.style.bar(subset=['SepalL','PetalL'], color='#d65f5f')
* subset을 통해서 대상 속성들을 선택한다.
* subset을 통해서 대상 속성들을 선택한다.
SepalL | SepalW | PetalL | PetalW | |
---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 |
1 | 4.9 | 3.0 | 1.4 | 0.2 |
2 | 4.7 | 3.2 | 1.3 | 0.2 |
3 | 4.6 | 3.1 | 1.5 | 0.2 |
4 | 5.0 | 3.6 | 1.4 | 0.2 |
5 | 5.4 | 3.9 | 1.7 | 0.4 |
요소(elements) 단위로 분류하는 것
df.style.applymap(lambda i: 'background-color: red' if i > 3 else '')
* 테이블의 전체 요소마다 함수가 적용된다.
* 테이블의 전체 요소마다 함수가 적용된다.
SepalL | SepalW | PetalL | PetalW | |
---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 |
1 | 4.9 | 3.0 | 1.4 | 0.2 |
2 | 4.7 | 3.2 | 1.3 | 0.2 |
3 | 4.6 | 3.1 | 1.5 | 0.2 |
4 | 5.0 | 3.6 | 1.4 | 0.2 |
5 | 5.4 | 3.9 | 1.7 | 0.4 |
컬럼(columns)이나 로우(row) 단위로 분류하는 것
yes = 'background-color: green'
no = 'background-color: orange'
df.style.apply(lambda L: [ yes if i*10 % 2 == 0 else no for i in L ], axis=0)
* 축(axis)에 따라 List 단위로 입력되는 것에 유의하자.
SepalL | SepalW | PetalL | PetalW | |
---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 |
1 | 4.9 | 3.0 | 1.4 | 0.2 |
2 | 4.7 | 3.2 | 1.3 | 0.2 |
3 | 4.6 | 3.1 | 1.5 | 0.2 |
4 | 5.0 | 3.6 | 1.4 | 0.2 |
5 | 5.4 | 3.9 | 1.7 | 0.4 |
상세한 내용은 원문을 참고하자.
http://pandas.pydata.org/pandas-docs/version/0.17.1/whatsnew.html
0 개의 댓글:
댓글 쓰기