app8_home.py 파일에 코드를 입력해보자
import streamlit as st
def run_home() :
st.subheader('홈 화면')
st.text('파일 분리 앱 실습')
st.image('./data/image_03.jpg')
이 화면은 분리화면이고 저 함수를 호출하게 되면
나타나는 화면이다
app.py는 메인화면
import streamlit as st
from app8_home import run_home
def main() :
st.title('파일 분리 앱')
menu = ['Home','EDA','ML','About']
choice = st.sidebar.selectbox('메뉴',menu)
if choice == menu[0]:
run_home()
from app8_home import run_home
을 사용하면 app8_home.py에 위에 지정한 함수 run_home를 사용 할수 있게 된다
그래서 app8_home.py 에서 작성한 화면을 통째로 보여줄 수 있다는 얘기다
코드 10만줄을 써놔도
함수로 지정해두고 호출만 한다면
코드 1줄로 가독성을 좋게 만들 수 있다
사이드바의 메뉴에서 홈을 선택하게 됐을 때 이런 화면이 나오게 된다
EDA 화면은
iris.csv 파일 읽고 여러 컬럼들 '선택' 가능하고,
선택한 컬럼들만 화면에 보여주며,
상관계수도 보여주도록 해보자
app8_eda.py 부터 만들자
def run_eda() :
st.subheader('EDA 화면')
df = pd.read_csv('./data/iris.csv')
choice_list = st.multiselect('원하는 컬럼을 선택하세요', df.columns)
if choice_list :
st.dataframe( df[choice_list] )
st.write(df[choice_list].corr())
else:
st.write(" ")
st.write(df[choice_list].corr())
부분은
st.dataframe(df[choice_list].corr())
으로 입력하여도 똑같이 출력 된다
이때 write로 출력하면 데이터형식이 그대로 출력이 되어
후에 데이터를 쓸 예정이라면 더 추천되며
dataframe으로 출력한다면 데이터형식이 따로 출력이 되지않는다
위에서 했듯이 메인화면에서
임포트 해주고 함수를 호출해주자
from app8_eda import run_eda
elif choice == menu[1]:
run_eda()
메인 파일의 짧아진 코드
import streamlit as st
from app8_home import run_home
from app8_eda import run_eda
from app8_ml import run_ml
from app8_about import run_about
def main() :
st.title('파일 분리 앱')
menu = ['Home','EDA','ML','About']
choice = st.sidebar.selectbox('메뉴',menu)
if choice == menu[0]:
run_home()
elif choice == menu[1]:
run_eda()
elif choice == menu[2]:
run_ml()
elif choice == menu[3]:
run_about()
if __name__ == '__main__' :
main()
이렇게 만든다면 짧고 가독성 있으며
문제가 생겼을 시에 저 해당 파일만 찾아서 해결하면 되기 때문에
유지 보수 하기에 편리하다
'Streamlit' 카테고리의 다른 글
Streamlit - 탐색적 데이터 분석 방법.line_chart( ).area_chart( ).bar_chart( ).map( ) // Plotly_chart 의 px.pie( )px.bar( ) (0) | 2024.04.24 |
---|---|
Streamlit - 차트그리기 plt.figure( ) st.pyplot( ) (0) | 2024.04.24 |
Streamlit - 사이드바, 유저에게 파일 받기 (0) | 2024.04.24 |
Streamlit - input / 유저한테 입력 받는 법 (0) | 2024.04.23 |
Streamlit - 이미지, 비디오, 오디오 웹 화면에 띄우기 (0) | 2024.04.23 |