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를 이용해 사용자가 선택한 값에 따라 동적으로 변하는 대시보드를 손쉽게 만들 수 있습니다.

<h3>카테고리 다른 글</h3>
Date Title Author
Jan 1, 3000 전체 카테고리 gabriel yang
Sep 21, 2024 Streamlit 멀티 select 사용하기 gabriel yang
Sep 19, 2024 Streamlit fragments 사용하기 gabriel yang
Sep 19, 2024 Streamlit form 사용하기 gabriel yang
Sep 19, 2024 Streamlit 데이터프레임 수정하기 gabriel yang
Sep 19, 2024 Streamlit fragments 사용하기 gabriel yang
Sep 18, 2024 Streamlit docker로 배포하기 gabriel yang
Sep 18, 2024 Streamlit 실시간 업데이트 사용하기 gabriel yang
Sep 18, 2024 Streamlit에서 다이얼로그 사용하기 gabriel yang
Sep 18, 2024 Streamlit의 유지보수와 디버깅 팁 gabriel yang
Sep 17, 2024 Streamlit cache_resource 사용하기 gabriel yang
Sep 16, 2024 Streamlit cache 사용하기 gabriel yang
Sep 15, 2024 Streamlit 데이터프레임 선택하기 gabriel yang
Sep 14, 2024 Streamlit 다중 page 구성하기 gabriel yang
Sep 13, 2024 Streamlit Session_state 사용하기 gabriel yang
Sep 12, 2024 Streamlit을 활용한 기본 시각화 도구 gabriel yang
Sep 12, 2024 Streamlit에 Plotly 차트 적용하기 gabriel yang
Sep 11, 2024 Streamlit에서 파일 업로드하기 gabriel yang
Sep 11, 2024 Streamlit에 SQLite 데이터베이스 적용 gabriel yang
Sep 10, 2024 Streamlit UI 컴포넌트 소개 gabriel yang
Sep 9, 2024 Streamlit 사용 사례 gabriel yang
Sep 9, 2024 Streamlit 설치 및 환경설정 gabriel yang
Sep 9, 2024 Streamlit 애플리케이션 구조 이해 gabriel yang
Sep 9, 2024 Streamlit layout 설정하는 방법 gabriel yang
Sep 8, 2024 Streamlit이란 무엇인가요? gabriel yang
Sep 6, 2024 Streamlit Cloud로 앱 배포하기 gabriel yang
No matching items
Back to BLOG LIST