Dashboard App/streamlit

[streamlit] 자주사용하는 위젯, 다양한 UI 함수들(button, radio, checkbox, selectbox, multiselect, slider, expander)

Mei99 2024. 4. 24. 17:38

Python streamlit 다양한 UI 함수들

 

import streamlit as st
import pandas as pd

 

 

- st.button() : 버튼

def main() :
    df = pd.read_csv('./data/iris.csv')
 
    # 버튼 만들기
    # 버튼을 누르면 데이터프레임을 보여준다.
    if st.button('데이터 보기') :
        st.dataframe(df)
 

 

 

- st.radio() : 라디오 버튼 

def main() :
    df = pd.read_csv('./data/iris.csv')   
 
    # 라디오 버튼 : 여러개중에서 한 개 선택할 때,
    my_order = ['오름차순 정렬', '내림차순 정렬']
    status = st.radio('정렬방법 선택하세요', my_order)
 
    # petal_length 컬럼으로 정렬해서 df를 보여준다.
    if status == my_order[0] :
        st.dataframe(df.sort_values ('petal_length', ascending=True))
    elif status == my_order[1] :
        st.dataframe(df.sort_values ('petal_length', ascending=False))

 

 

- st.checkbox() : 체크박스

def main() :
    df = pd.read_csv('./data/iris.csv')
   
    # 체크박스 : 둘중에 하나만 선택하게끔 만들때.(체크/해제)
    # 체크하면, 헤드 5개 보여주고, 해제하면 안 보여주도록
     if st.checkbox('헤드 5개 보기', True) :
         st.dataframe( df.head())
         df.head()
    else :
        st.write()
        

 

 

- st. selectbox()  : 설렉트 박스

def main() :
    df = pd.read_csv('./data/iris.csv')
 
    # 설렉트박스 : 여러개에서 한 개만 고르게 하되,
    #              리스트가 많을때 사용한다.
    language = ['Python', 'C', 'Java', 'Go', 'PHP', 'Dart']

    my_choice = st.selectbox('좋아하는 언어 선택하세요.', language)

    if my_choice == language[0] or my_choice == language[2] :
        st.text('정말 재미있는 언어입니다.')
    elif my_choice == language[3] or my_choice == language[5] :
        st.text('배우고 싶습니다.')
    else :
        st.text('오래된 언어입니다.')

 

 

- st.multiselect() : 멀티셀렉트

def main() :
    df = pd.read_csv('./data/iris.csv')
 
    # 멀티셀렉트 : 여러개중에, 여러개를 선택하게 할 때.

    # 유저가 선택한 컬럼을, 데이터프레임으로 보여주되
    # 아무것도 선택안하면, 아무것도 나오지 않게 하시오.
    choice_list = st.multiselect('원하는 컬럼을 선택하세요', df.columns)
    if len(choice_list) != 0 :  #choice_list == []
        st.dataframe(df[choice_list])
    else :
        st.write()

 

 

- st.slider() : 슬라이더

def main() :
    df = pd.read_csv('./data/iris.csv')
 
    # 슬라이더 : 숫자 조정하는데 주로 사용
    st.slider('데이터 선택', -5.0, 10.5, 0.0, 0.5)

    # 나이를 슬라이더로 입력받는다.
    # 1세부터 120세까지 입력받을 수 있도록 한다.
    # 선택한 나이가 웹화면에 출력되도록 한다. "선택한 나이는 33세 입니다."
    age = st.slider('나이 선택', 1, 120, 1, 1)

    st.info(f'선택한 나이는 {age}세 입니다.')

 

 

- st.expander() : 익스펜더

def main() :
    df = pd.read_csv('./data/iris.csv')
 
    # 익스펜더
    with st.expander('Hello') :
        st.text('데이터 프레임 입니다.')
        st.dataframe(df)

 

 

마지막은 함수 닫아주기!

if __name__ == '__main__' :
    main()