본문 바로가기
Python/Streamlit

스트림릿(streamlit)의 다양한 UI 함수들 정리 1 - 글자출력/데이터프레임 출력/버튼, 라디오버튼, 체크박스, 셀렉트박스 만들기

by healingmau 2022. 5. 19.

 

스트림릿(streamlit)의 다양한 UI 함수들 정리 1

 

 

1. 글자 출력하기

 

st.title() : 제목같은 큰 글씨
st.subheader() : 제목보다 작은 글씨
st.text() : 기본 작은 글씨

 

import streamlit as st

def main() :
    st.title('웹 대시보드')

    name = '주일룡'

    st.text('제 이름은 {} 입니다.'.format(name)) # 작은 글씨

    st.header('이 영역은 헤더 영역')  # 제목같은 큰 글씨

    st.subheader('이 영역은 subheader영역')  # 제목보다는 작은 글씨

    st.success('작업이 성공했을때 사용하자')         # 녹색 영역
    st.warning('경고 문구를 보여주고 싶을때 사용하자')   # 노란색 영역
    st.info('정보를 보여주고 싶을때 사용하자')  # 파란색 영역
    st.error('문제가 발생했을때 사용')  # 레드 영역

    # 파이썬의 함수 사용법을 보여주고 싶을때
    st.help(sum)  # 함수 설명을 보여주고 싶을때 (sum)
    st.help(len)

if __name__ == '__main__' :
    main()

 

[결과]

 

 

 


 

 

2. 데이터프레임(DataFrame) 출력하기

 


st.dataframe()

 

데이터프레임을 출력할때는

스트림릿의 dataframe() 함수

이용합니다.

 

뒤에 변수명 df는

CSV 파일을 불러오는

명령어가 담긴 변수입니다.

 

import streamlit as st # 스트림릿 호출
import pandas as pd    # 판다스 호출

def main() :
    df = pd.read_csv('data2/iris.csv') # CSV 파일 불러오고 df 변수에 저장

    st.dataframe(df)

    species = df['species'].unique()

    st.text('아이리스 꽃은 ' + species + '으로 되어있다.')

    df.head()

    st.dataframe( df.head() )
    st.write( df.head() )

if __name__ == '__main__' :
    main()

 

웹에서 데이터프레임 데이터를

5개까지 보여주기는

st.dataframe( df.head() ) 코딩!

이는 st.write( df.head() ) 로도

사용할 수 있습니다.

 

[결과]

 

 

 


 

3. 버튼(button) 만들기

 


st.button()

 

스트림릿의 button() 함수를 이용해

버튼을 만들수 있습니다.

버튼을 누르면 True를 리턴합니다.

 

import streamlit as st

def main() :
    st.title('버튼 만들기')

    st.button('버튼 클릭!')

if __name__ == "__main__" :
    main()

 

[결과]

ex) 응용하기!

 

'대문자' 버튼을 누르면

species 컬럼의 값들을 대문자로

변경한 데이터프레임을 보여줍니다.

 

 
import streamlit as st
import pandas as pd

def main() :

    df = pd.read_csv('data2/iris.csv')
    st.dataframe(df)

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

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

if __name__ == "__main__" :
    main()

 

[결과]

 

 

 


 

4. 라디오(radio) 버튼 만들기

 


st.radio()

 

라디오 버튼은 여러개 중에서

하나를 선택할때 사용합니다.

 

radio() 함수를 이용!

라디오버튼을 클릭하면

클릭했을때 나타나는 문자열을

리턴해 줍니다.

 

import streamlit as st
import pandas as pd

def main() :

    df = pd.read_csv('data2/iris.csv')
    # st.dataframe(df)

    my_order = ['오름차순정렬', '내림차순정렬']
    
    status = st.radio('정렬방법 선택', my_order)

    # 첫번째 방법
    if status == my_order[0] :
        # petal_length 칼럼을 오름차순으로 정렬해서 화면에 보여준다.
        # df.sort_values('petal_length')
        st.dataframe(df.sort_values('petal_length'))
    elif status == my_order[1] :
        # df.sort_values('petal_length', ascending=False)
        st.dataframe(df.sort_values('petal_length', ascending=False))

    # 두번째 방법 (버튼을 똑같은거 쓰면 에러남)
    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)

if __name__ == "__main__" :
    main()

 

위 코딩에서 첫번째 방법, 두번째 방법

결과는 모두 같습니다.

 

[결과]

 

 


 

5. 체크박스 만들기

 


st.checkbox()

 

스트림릿의 checkbos() 함수

이용합니다.

 

체크 해제/ 체크

두 동작중 하나를 합니다.

체크하면 True 가 됩니다.

True/False 값을 리턴 합니다.

 

import streamlit as st
import pandas as pd

def main() :

    df = pd.read_csv('data2/iris.csv')
    # st.dataframe(df)

    # 체크박스 : 체크 해제/ 체크
    # 두개 동작중 하나를 한다. 체크하면 TRUE가 된다.

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

if __name__ == "__main__" :
    main()

 

[결과]

 

 


 

6. 셀렉트박스 만들기

 


st.selectbox()

 

셀렉트박스튼 여러개 중에서

1개만 고르는 UI 입니다.

선택한 문자열을 리턴합니다.

 

import streamlit as st

def main() :

    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('자바를 선택하셨습니다')
    elif my_choice == language[3] :
        st.write('Go를 선택하셨습니다')
    elif my_choice == language[4] :
        st.write('PHP를 선택하셨습니다')       


if __name__ == "__main__" :
    main()

 

[결과]

 

 

 

힐링아무의 코딩일기 힐코딩!

댓글