군침이 싹 도는 코딩

스트림릿의 다양한 UI 함수 2 (dataframe,button,radio,checkbox,selectbox,multiselect,slider,expender) 본문

Python/Streamlit

스트림릿의 다양한 UI 함수 2 (dataframe,button,radio,checkbox,selectbox,multiselect,slider,expender)

mugoori 2022. 12. 12. 17:18
import streamlit as st
import pandas as pd

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

# 데이터 프레임을 가져오는 함수

사용법은 임폴트로 스트림릿과 판다스를 임폴트 한 뒤 

판다스의 read_csv 로 데이터 프레임을 가져오고

스트림릿의 dataframe() 함수를 사용해 화면에 출력한다

 

 

 

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

    # 버튼을 클릭하면, 데이터프레임이 보이도록 만들기.

    if st.button('데이터프레임 보기') :
        st.dataframe(df)

# 화면에 클릭할수 있는 버튼을 출력해주는 함수

st.button 을 사용해서 만들수있다

 

 

    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))

# 라디오는 버튼을 여러개 만들수 있으며 선택은 하나만 할 수 있다

위 코드블럭에서는 오름차순 선택하면 오름차순 내림차순 선택하면

내림차순으로 정렬하게 만들었다

 

 

 

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

# st.checkbox() 라는 함수를 사용해 누르면 데이터 프레임이 나오게

다시 누르면 없어지게 만들어보았다

 

 

 

    # 셀렉트박스 : 여러개 중에 한개 선택
    language = ['Python','C','JAVA','PHP','GO']

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


    # 유저가 선택하면, 해당 언어를 다음처럼 표시해준다.
    # 저는 Python 언어를 가장 좋아합니다.
    # 저는 JAVA 언어를 가장 좋아합니다.
    # 만약 유저가 선택한 언어가, 파이썬이나 php 나 Go 언어이면
    # 배우기 쉽습니다. 라고 화면에 보여주고,
    # 자바나 씨언어를 선택하면,
    # 배우기 어렵습니다. 라고 화면에 보여주세요.

    st.text('저는 '+my_choice+' 언어를 가장 좋아합니다.')
    if my_choice == 'Python' or my_choice == 'PHP' or my_choice == 'GO':
        st.text('배우기 쉽습니다.')
    else :
        st.text('배우기 어렵습니다.')

# 셀렉트박스는 리스트를 사용해 저장한 데이터 여러개를 나열해주고

이중에 1개를 선택할수 있는 박스이다

 

 

 

 

    # 여러개를 선택할 수 있게 하는 multiselect
    # 아이리스 데이터프레임의 컬럼이름을 가져오세요.
    selected_list = st.multiselect('원하는 컬럼을 선택하세요',df.columns )
    # 유저가 컬럼을 선택하면, 해당 컬럼을 화면에 보여주고,
    # 유저가 아무컬럼도 선택하지 않으면, 데이터프레임 보여주지 않는다.
    if selected_list :
        st.dataframe(df[selected_list])
    else :
        st.text('')

# 멀티셀렉트는 리스트에 들어있는 여러개의 데이터를 다중 선택할수있게 한다

해당 코드블럭에서는 선택한 컬럼의 데이터 프레임을 가져오게 하였다

 

 

 

    # 슬라이더
    age = st.slider('나이',1,100)

    st.text('당신이 선택한 나이는 '+str(age)+' 입니다.')

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

    st.slider('데이터',1,200,value=75)

    st.slider('데이터',0.0,1.0,step=0.1)

# 슬라이더는 범위를 지정하고 그 사이에 값을 선택하게 할수있다

스탭을 사용해 몇씩 뛰어넘을지 지정이 가능하고

벨류를 이용해 디폴드값을 설정할수 있다

 

 

 

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

#  익스펜더는 누르면 텍스트 안쪽의 문자가 나오게 하는 접은글을 만들수있다