728x90
참고 블로그 : https://blog.zarathu.com/posts/2023-02-01-streamlit/
차라투 블로그 - Python Streamlit 패키지를 이용한 대시보드 만들기
https://docs.streamlit.io/library/api-reference 를 바탕으로 정리한 글입니다. 2023년 2월 기준) streamlit version 1.17.0 을 기준으로 작성하였습니다. Streamlit 소개 언제 스트림릿을 사용해야할지 스트림릿이 타
blog.zarathu.com
0. 제목 만들기
1. Tab 만들기
import streamlit as st
# 탭 생성 : 첫번째 탭의 이름은 Tab A 로, Tab B로 표시합니다.
tab1, tab2= st.tabs(['Tab A' , 'Tab B'])
with tab1:
#tab A 를 누르면 표시될 내용
st.write('hello')
with tab2:
#tab B를 누르면 표시될 내용
st.write('hi')
2. Select Box 만들기 (Drop Down)
# 사이드바에 select box를 활용하여 종을 선택한 다음 그에 해당하는 행만 추출하여 데이터프레임을 만들고자합니다.
st.sidebar.title('Iris Species🌸')
# select_species 변수에 사용자가 선택한 값이 지정됩니다
select_species = st.sidebar.selectbox(
'확인하고 싶은 종을 선택하세요',
['setosa','versicolor','virginica']
)
# 원래 dataframe으로 부터 꽃의 종류가 선택한 종류들만 필터링 되어서 나오게 일시적인 dataframe을 생성합니다
tmp_df = df[df['species']== select_species]
# 선택한 종의 맨 처음 5행을 보여줍니다
st.table(tmp_df.head())
3. Multi Select
# 여러개 선택할 수 있을 때는 multiselect를 이용하실 수 있습니다
# return : list
select_multi_species = st.sidebar.multiselect(
'확인하고자 하는 종을 선택해 주세요. 복수선택가능',
['setosa','versicolor','virginica']
)
# 원래 dataframe으로 부터 꽃의 종류가 선택한 종류들만 필터링 되어서 나오게 일시적인 dataframe을 생성합니다
tmp_df = df[df['species'].isin(select_multi_species)]
# 선택한 종들의 결과표를 나타냅니다.
st.table(tmp_df)
4. Multi Slider
# 라디오에 선택한 내용을 radio select변수에 담습니다
radio_select =st.sidebar.radio(
"what is key column?",
['sepal length', 'sepal width', 'petal length','petal width'],
horizontal=True
)
# 선택한 컬럼의 값의 범위를 지정할 수 있는 slider를 만듭니다.
slider_range = st.sidebar.slider(
"choose range of key column",
0.0, #시작 값
10.0, #끝 값
(2.5, 7.5) # 기본값, 앞 뒤로 2개 설정 / 하나만 하는 경우 value=2.5 이런 식으로 설정가능
)
# 필터 적용버튼 생성
start_button = st.sidebar.button(
"filter apply 📊 "#"버튼에 표시될 내용"
)
5. Button
# 이를 이용해서 if문으로 버튼이 눌렸을 때를 구현
if start_button:
tmp_df = df[df['species'].isin(select_multi_species)]
#slider input으로 받은 값에 해당하는 값을 기준으로 데이터를 필터링합니다.
tmp_df= tmp_df[ (tmp_df[radio_select] >= slider_range[0]) & (tmp_df[radio_select] <= slider_range[1])]
st.table(tmp_df)
# 성공문구 + 풍선이 날리는 특수효과
st.sidebar.success("Filter Applied!")
st.balloons()
예시
1. 데이터 선택은 지정된 데이터를 부를 수 있게 드롭 박스로 구현
2. 비트 선택은 둘 중에 하나만 선택 할 수 있도록
3. 각각 옵션 등은 체크 박스로 구현
4. 피어슨 상관 계수는 항목을 복수로 선택할 수 있도록
5. Main 화면에는 숫자를 입력하거나 - +로 이동 가능하도록
728x90