본문 바로가기

Github & Streamlit

Streamlit 문법: 버튼/ 체크/ (여러) 항목 선택: st.button(), st.radio(), st.checkbox(), st.selectbox(), st.multiselect()

반응형

Streamlit 문법: 

- 모두 main() 함수 안에서 적용이 된다.

 

import pstats
import streamlit as st
import pandas as pd

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

 

버튼 만들기: st.button()

ex)  '대문자' 버튼을 만들고, 버튼을 누르면, species 컬럼의 값들을 대문자로 변경한 데이터 프레임을 보여주세요.

if st.button('대문자'):
    df['species'] = df['species'].str.upper()
    st.dataframe(df)

ㄴ 버튼을 누르면/마우스로 클릭하면 버튼이 True가 된다.

 

(st.button 적용화면)

 

라디오 버튼: st.radio()

- 여러개중에 한개 선택할 때

my_order = ['오름차순 정렬','내림차순 정렬']

status = st.radio('정렬방법 선택',my_order)

if status == my_order[0]:
   st.dataframe(df.sort_values('petal_length'))

elif status == my_order[1]: 
        st.dataframe(df.sort_values('petal_length',ascending=False))

- 오름차순 정렬, 내림차순 정렬, 여러개 저장하는 건 리스트

- df.sort_values('petal_length',ascending=False)

- petal_length 컬럼을 오름차순으로 정렬해서 화면에 출력

- df.sort_values('petal_length')

 

(st.radio 적용화면)

 

-  df를 저장해서 하는 방법도 있다.

    status = st.radio('정렬방법 선택2',my_order)
    if status == my_order[0]:
            # petal_length 컬럼을 오름차순으로 정렬해서 화면에 출력
            df = df.sort_values('petal_length')
            st.dataframe(df)
    elif status == my_order[1]:
            df = df.sort_values('petal_length',ascending=False)
            st.dataframe(df)

(st.radio 적용화면)

 

체크박스: st.checkbox()

- 체크 해제/체크

   if st.checkbox('헤드 5개 보기'):
        st.dataframe(df.head())
    else:
        st.text('헤드 숨겼습니다.')

(체크박스 미체크时)

 

(체크박스 체크时)

 

셀렉트박스: st.selectbox()

- 여러개에서 고르는 UI

    language = ['Python','C','Java','Go','PHP']
    my_choice =  st.selectbox('좋아하는 언어 선택',language)

    if my_choice == language[0]:
        st.write('파이썬을 선택했습니다.')
    elif my_choice == language[1]:
        st.write('C언어가 좋아요.')
    elif my_choice == language[2]:
        st.write('자바 선택')

(st.selectbox 적용화면)

 

멀티셀렉트: st.multiselect()

- 여러개 중에서, 여러개 선택하는 UI

language = ['Python','C','Java','Go','PHP']
st.multiselect('여러개 선택가능',language)

 

(st.multiselect 적용화면)

 

ex) 유저에게, iris df의 컬럼들을 다 보여주고, 유저가 선택한 컬럼들만, 데이터프레임을 화면에 보여줄것

- 멀티 셀렉트를 이용해서, 특정 컬럼들만 가져오기

column_lsit = df.columns

choice_list = st.multiselect('컬럼을 선택하세요', column_lsit)

st.dataframe(df[choice_list])

(st.multiselect 적용화면)

 

반응형