본문 바로가기
파이썬(Python)

[파이썬]Streamlit 활용(3) - 기본 라이브러리

by 즐거운코딩 2024. 3. 6.
반응형

이전의 포스트 (1번, 2번)에서는 Streamlit 기본 셋팅에 관련하여 설명하였습니다.

이번 포스트에서는 페이지를 만드는데 필요한 기본적인 라이브러리를 먼저 소개하고자 합니다.

페이지 구성을 먼저 생각하시고 적절한 라이브러리를 선택하여 사용하면 됩니다.

우선 페이지를 어떻게 구성하면 좋은지 다양한 예시를 Streamlit 사이트의 'Gallery' 메뉴에서 참고하면 많은 도움이 됩니다.

 

1.  Streamlit Galley 예시

https://streamlit.io/gallery

 

App Gallery • Streamlit

Streamlit is an open-source Python framework for machine learning and data science teams. Create interactive data apps in minutes.

streamlit.io

이미지 작업 , 그래프, 지도 등 다양한 주제의 데이터 가공 및 표출을 할 수 있습니다.

파이썬으로 개발한 내용을 외부에 공유하거나 반복적인 작업을 편리한 UI로 다른 이용자에게 제공하기에 좋은 툴 입니다.

 

 

2.  기본 라이브러리

A.  st.write

파이썬의 기본적인 print와 비슷한 면도 있지만 사용범위가 다양합니다.

st.write(*args, unsafe_allow_html=False, **kwargs)

 

args 로 markdown text, dataframe, error, matplotlib plot, altair chart 등 다양한 객체를 적용 가능하며, 해당 객체를 화면에 표출해줍니다.

 

dataframe의 데이터는 표로 표출되며 표를 선택시 csv 다운로드, 검색, full screen 확대 기능을 기본으로 제공합니다.

테이블의 필드명을 선택시 해당 필드 기준으로 sorting 기능도 가능합니다.

 

이와 같이 st.write 는 활용도가 높은 라이브러리 입니다.

 

B. Text elements

  • st.markdown

  • st.title - 페이지에서 1번만 사용 가능, 페이지 타이틀로 가장 글자 크기가 큼
    markdown 적용되어 이탤릭체, 글자색 변경, 이모티콘 적용 가능

  • st.header - 큰 문단 구분에 활용, divider 옵션 적용시 구분선 표출

  • st.subheader - header보다 적은 글씨 

  • st.divider() - 구분선 표출로 st.write("---") 도 동일한 효과

C. Data elements

  • st.dataframe - 가장 활용도 높은 라이브러리중 하나로 옵션에 따라 다양하게 표출 가능
st.dataframe(data=None, width=None, height=None, *, use_container_width=False, hide_index=None, column_order=None, column_config=None)

        width : 표의 폭을 pixel로 지정

        height : 표의 높이를 pixel로 지정

        hide_index : true 로 지정시 index 컬럼 표출 제외

        column_order : 표출 컬럼 순서 변경 가능 (예시: columns_order=("col2", "col1") 두 개 컬럼만 col2, col1 순서로 표출)

import streamlit as st
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(10, 20), columns=("col %d" % i for i in range(20)))

st.dataframe(df.style.highlight_max(axis=0))

데이터프레임에 style 적용하여 컬럼에서 최대값에 하이라이트 적용

   옵션으로 column_config 적용 예시

 

내용이 길어져서 다음 포스트에 이어서 소개하도록 하겠습니다.

반응형