본문 바로가기
Streamlit

streamlit 배포 준비(2)

by ISLA! 2023. 9. 1.

Streamlit 대시보드 구조

streamlit 대시보드를 만드는 구조는 다음과 같다

  • 기본적으로 app.py 에서 전체적인 틀을 관리한다
  • 세부사항은 run_eda_app.py 와 같이 따로 파일을 만들어 함수(메서드)를 정의하고, 이를 app.py에 호출하여 사용하는 것이다
  • 🚀 즉, 원하는 대시보드의 구조를 미리 구상해놓고 각각의 기능을 함수로 구현하고 이를 app.py에 종합하여 구현한다

예제

run_eda_app.py 작성

  • 아래 파일에는 run_eda_app() 메서드가 작성되어 있다.
  • 탐색적 자료 분석 메뉴에서 실행시킬 함수라고 생각하면 된다.
# -*- coding:utf-8 -*-

import streamlit as st
import pandas as pd

import matplotlib.pyplot as plt
import plotly.express as px
import seaborn as sns

def run_eda_app():

    st.subheader('탐색적 자료 분석 페이지')
    st.subheader('잘 진행중..!')

 

app.py 수정

  • 위에서 정의한 메서드를 app.py의 '탐색적 자료 분석' 하위에 작성해준다
  • 탐색적 자료분석 메뉴를 누르면 run_eda_app( )이 나타나게 된다

 

 

streamlit run app.py 로 실행

  • 로컬에서 작업한 파일들을 git push 해주는 것도 잊지말자! 👍

 


참고 : eda_app.py 수정 결과

코드 수정

# -*- coding:utf-8 -*-

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import plotly.express as px
import seaborn as sns

def run_eda_app():

    st.subheader('탐색적 자료 분석 페이지')
    st.subheader('잘 진행중..!')

    iris_df = pd.read_csv('data/iris.csv')

    # 메뉴지정
    submenu = st.sidebar.selectbox('submenu', ['통계분석', '시각화', '인사이트'])
    if submenu == "통계분석":
        st.subheader("통계분석")
    elif submenu == "시각화":
        st.subheader("시각화")
    elif submenu == "인사이트":
        st.subheader("인사이트")
    else:
        pass

    st.dataframe(iris_df)



결과 확인

728x90