[Streamlit] 버튼 기능

원준·2023년 5월 23일
0

Streamlit

목록 보기
7/13
post-custom-banner

1. button()

  • 기본적으로 버튼을 지원한다.

  • 버튼을 누르면 True를 반환하는 특징을 가지고 있다.

    # 선언
    st.button('버튼')
    
    # 조건부와 같이 사용할 수 있다.
    if st.button('데이터 보기'):
    	st.dataframe(df) # 버튼을 누를시에 데이터프레임을 보여줘.

2. radio()

  • 여러가지 선택지를 주며, 1개의 선택을 주는 버튼

  • radio 버튼을 누르면 해당 label 값을 반환하는 특징을 가지고 있다.

    # 선언 방법
    status = st.radio('정렬 선택', ['오름차순', '내림차순'])
    	# 오름차순을 선택하면 '오름차순' 으로 값을 반환한다.
       
    if status == '오름차순': # 오름차순으로 정렬하고, 데이터프레임을 보여주라
       st.dataframe(df.sort_values('petal_length'))
    
    elif status == '내림차순' : #내림차순으로 정렬하고, 데이터프레임을 보여주라
       st.dataframe(df.sort_values('petal_length', ascending=False))

3. checkbox()

  • 체크 박스를 생성한다.

  • 체크를 하면 True, 체크해제를 하면 False를 반환하는 특징을 가지고 있다.

    # 선언 방법
    st.checkbox('체크박스')
    
    if st.checkbox('데이터 보여줘') #체크 했을때만 데이터프레임을 보여줘
    	st.dataframe(df.head())

4. selectbox()

  • radio와는 다른 방법의 선택 방법이다.

  • 선택하면 해당 label의 값을 반환하는 특징이 있다.

    # 선언 방법
    st.selectbox('선택 박스', [])
    
    # 사용법
    languages = ['Python', 'Java', 'C', 'Go', 'PHP']
    selected_lang = st.selectbox('선호하는 언어 선택 박스', languages)
    
    if selected_lang == 'Python':
    	st.write('파이썬 선택')


5. multiselect()

  • 태그 처럼 여러가지를 선택할 수 있는 선택박스이다.

  • 선택하면 label의 값들을 list의 형태로 가져오는 특징이 있다.

    # iris.csv 사용
    df = pd.read_csv('data/iris.csv')
    
    # 선언 방법
    st.multiselect('선택하세요', [])
    
    # 사용법
    columns_list = st.multiselect('컬럼을 선택하세요.', df.columns)
    st.dataframe(df[columns_list])
    	# 선택한 컬럼에 대하여 데이터 프레임을 보여준다.

6. slider()

  • 숫자 범위 선택바 를 나타내는 박스를 생성한다.

  • 기본값의 범위는 실수로 되어있으며, 정수로도 변환이 가능하다.

  • 값을 정하면 숫자형으로 반환하는 특징이 있다.

    # 선언 방법
    st.slider('설명', 옵션)
    
    # 사용 방법
    age = st.slider('나이', min_value=1, max_value=100, value=20)
    st.text(f"나이는 {age}이다")

7. expander()

  • 기본적으로 특정 텍스트를 숨겨주는 함수.

  • 반환하는 특징은 없지만, 평상시에는 글을 가려주는 역할을 한다.

    # 선언 방법
    st.expander("라벨")
    
    # 사용 방법
    with st.expander("hello"):
    	st.text("안녕")

profile
공부해보자
post-custom-banner

0개의 댓글