Streamlit selectbox를 사용하기

Streamlit selectbox를 사용하기

Streamlit
Streamlit 멀티 select 사용하기
Author

gabriel yang

Published

September 21, 2024


Streamlit은 데이터 시각화와 대시보드 제작을 손쉽게 할 수 있는 파이썬 라이브러리로, 인터랙티브한 위젯을 제공하여 사용자 경험을 크게 향상시킬 수 있습니다. 이번 포스팅에서는 selectbox 위젯을 활용하여 사용자가 선택한 값에 따라 동적으로 변하는 대시보드를 만드는 방법을 알아보겠습니다.

selectbox란?

selectbox는 드롭다운 메뉴를 제공하여 사용자가 리스트에서 하나의 항목을 선택할 수 있도록 하는 Streamlit의 위젯입니다. 이를 통해 사용자가 선택한 값에 따라 다른 데이터를 표시하거나, 특정 기능을 수행하도록 만들 수 있습니다.

기본 사용법

먼저 selectbox를 사용하기 위해서는 Streamlit 라이브러리를 설치하고, 필요한 모듈을 불러와야 합니다.

pip install streamlit
import streamlit as st

이제 selectbox의 기본 구조와 사용법을 살펴보겠습니다.

import streamlit as st

# Selectbox 기본 사용 예제
option = st.selectbox(
    '당신이 가장 좋아하는 색깔은 무엇인가요?',
    ('빨간색', '파란색', '녹색')
)

st.write('당신이 선택한 색깔:', option)

위 코드는 사용자가 ‘빨간색’, ‘파란색’, ‘녹색’ 중 하나를 선택할 수 있는 드롭다운 메뉴를 보여줍니다. 사용자가 항목을 선택하면, 선택된 값이 option 변수에 저장되고, st.write()를 통해 선택한 값이 화면에 출력됩니다.

selectbox의 주요 매개변수

selectbox는 다음과 같은 주요 매개변수를 가집니다:

  • label: 사용자에게 보여질 설명 텍스트입니다.
  • options: 사용자가 선택할 수 있는 항목들의 리스트입니다.
  • index: 선택된 항목 중 기본적으로 선택될 항목의 인덱스입니다.
  • key: 위젯의 고유 키입니다. 동일한 위젯이 여러 번 사용될 때 필요합니다.

다음은 각 매개변수에 대해 설명한 예제입니다:

import streamlit as st

# selectbox의 다양한 매개변수 사용 예제
option = st.selectbox(
    '좋아하는 과일을 선택하세요:',
    ['사과', '바나나', '오렌지', '포도'],
    index=1,  # 기본값으로 '바나나'를 선택
    key='fruit_select'  # 위젯의 고유 키 설정
)

st.write('선택한 과일:', option)

이 예제에서는 ’바나나’가 기본적으로 선택된 항목으로 설정되어 있으며, 사용자가 선택한 과일 이름이 화면에 출력됩니다.

예제: selectbox를 사용한 대시보드

이제 selectbox를 사용하여 선택된 항목에 따라 데이터를 다르게 보여주는 간단한 대시보드를 만들어보겠습니다.

import streamlit as st
import pandas as pd

# 데이터 생성
data = {
    '과일': ['사과', '바나나', '포도', '오렌지'],
    '가격': [1200, 800, 1800, 1000],
    '재고량': [15, 25, 10, 20]
}

df = pd.DataFrame(data)

# selectbox를 사용하여 과일 선택
fruit = st.selectbox('과일을 선택하세요:', df['과일'])

# 선택한 과일의 정보를 표시
selected_fruit_info = df[df['과일'] == fruit]
st.write('선택한 과일의 정보:', selected_fruit_info)

이 코드는 사용자가 과일을 선택하면, 선택한 과일의 가격과 재고량 정보를 데이터프레임 형태로 표시해줍니다. 이처럼 selectbox를 이용해 사용자가 선택한 값에 따라 동적으로 변하는 대시보드를 손쉽게 만들 수 있습니다.