본문 바로가기
Python/Streamlit

[Python] Streamlit 위젯 만들기 button, radio, checkbox, selectbox, multiselect, slider, expander

by coding_su 2022. 12. 12.

📝Python Streamlit 위젯 만들기(UI함수 사용)

버튼 button
라디오 버튼 radio
체크박스 checkbox
셀렉트박스 selectbox
다중선택박스 multiselect
슬라이더 slider
익스펜더 expander
import streamlit as st
import pandas as pd

 

버튼 button

def main() :
    df = pd.read_csv('streamlit_data/iris.csv')

    # 버튼을 클릭하면 데이터프레임이 보이도록 만들기
    if st.button('데이터프레임 보기') :
        st.dataframe(df)

라디오 버튼 radio

def main() :
    status = st.radio('정렬을 선택하세요', ['오름차순 정렬','내림차순 정렬'])
    
    if status == '오름차순 정렬' :
        # df의 petal_length 컬럼을 오름차순으로 정렬해서 보여주기
        st.dataframe(df.sort_values('petal_length'))
        
    elif status == '내림차순 정렬' :
        # df의 petal_length 컬럼을 내림차순으로 정렬해서 보여주기
        st.dataframe(df.sort_values('petal_length', ascending=False))

체크박스 checkbox

# 체크 박스를 체크하면 데이터프레임이 나오고 해제하면 데이터 프레임이 나오지 않게 만들기
def main() :
    if st.checkbox('show/hide') :
        st.dataframe(df)
    else :
        st.write('')

셀렉트박스 selectbox

def main() :
	language = ['Python', 'C', 'JAVA', 'PHP', 'GO']
    my_choice = st.selectbox('좋아하는 언어를 선택하세요', language)

다중선택박스 multiselect

def main() :
    selected_list = st.multiselect('원하는 컬럼을 선택하세요',df.columns)
    
    # 유저가 컬럼을 선택하면 해당 컬럼을 화면에 보여주고 아무 컬럼도 선택하지 않으면 데이터 프레임 보여주지 않는다
    if len(selected_list) == 0 :
        st.write('')
    else :
        st.dataframe(df[selected_list])

슬라이더 slider

def main() :
    age = st.slider('나이', 1, 100)
    st.text('당신이 선택한 나이는 ' + str(age) + '입니다')

    st.slider('데이터', 1, 100, step= 5)

    st.slider('데이터', 1, 200, value=75) # value= 설정시 기본값이 75로 셋팅됨

    st.slider('데이터', 0.0, 1.0, step=0.1) # int와 flot 함께 사용 불가

익스펜더 expander

※ 익스펜더는 누르면 확장되는 방식의 프레임 (클릭하면 숨겨진 영역을 볼 수 있다)

def main() :
	with st.expander('hello') :
        st.text('안녕하세요')

댓글