3 분 소요

Streamlit Library 연습하기

import streamlit as st
import pandas as pd
from PTL import Image
  • import streamlit as st
    streamlit은 데이터 분석, 시각화 및 상호작용을 위한 웹 어플리케이션을 빠르게 만드는 파이썬 라이브러리 입니다.

  • import pandas as pd
    pandas는 데이터 분석을 위한 파이썬 라이브러리입니다.

  • from PTL import Image
    PTL은 Python Template Library의 약자로, Python에서 사용되는 템플릿 라이브러리입니다.
    PTL Image는 PTL라이브러리의 Image 모듈입니다. 이미지 처리를 위한 다양한 기능을 제공합니다.
    이미지를 불러오고 저장할 수 있으며 이미지를 회전하거나 크기를 조절하는 등의 작업을 할 수 있습니다.

    st.title("Hello World") # title
    st.text("this is so {}".format("good")) # text
    st.header("This is Header") # Header
    st.subheader("This is subHeader") # Sub Header
    st.markdown("This is Markdown") # Markdown
    


  • st.title()
    텍스트를 제목 형식으로 표시합니다.
  • st.text()
    고정폭 글꼴로 표시되는 서식이 지정된 텍스트를 작성합니다.
    고정폭 글꼴은 각 글자가 동일한 너비를 차지하는 글꼴입니다. 한글 글꼴의 경우 한글 글자의 폭은 사실 영문 글자의 폭의 두 배를 차지합니다.
  • st.header()
    헤더를 생성하는 함수입니다. 이 함수는 문자열을 인자로 반당서 해당 문자열을 헤더로 출력합니다.
  • st.subheader()
    서브헤더를 생성하는 함수입니다. 이 함수는 문자열을 인자로 받아서 해당 문자열을 서브헤더로 출력합니다.
  • st.markdown()
    마크다운을 생성하는 함수입니다. 이 함수는 문자열을 인자로 받아서 해당 문자열을 마크다운으로 출력합니다.

    st.success('성공')
    st.warning('경고')
    st.info('정보와 관련된 탭')
    st.error('에러 메세지')
    st.exception('예외처리')
    


  • st.success()
    성공 메세지를 생성하는 함수입니다.
  • st.warning()
    경고 메세지를 생성하는 함수입니다.
  • st.info()
    정보 메세지를 생성하는 함수입니다.
  • st.error()
    오류 메세지를 생성하는 함수입니다.
  • st.exception()
    예외 메세지를 생성하는 함수입니다. 예외 객체의 정보를 예외 메세지로 출력합니다.

    st.write('일반 텍스트')
    st.write(1+2)
    st.write(dir(str))
    st.title(':sunglasses') # 이모티콘
    # Help
    st.help(range)
    st.help(st.title)
    


  • st.write()
    다양한 데이터 타입을 출력하는 함수입니다.
    이 함수는 문자열, 숫자, 데이터 프레임, 스타일이 적용된 데이터 프레임 등 다양한 데이터 타입을 인자로 받아서 출력합니다.
  • st.help()
    객체에 대한 도움말과 정보를 출력하는 함수입니다.
    이 함수는 객체의 이름, 타입, 값, 시그니처, 도움말, 멤버 변수 및 메소드의 값/ 도움말을 출력합니다.

    iris = pd.read_csv('data/iris.csv') # iris 파일 불러오기
    st.title("IRIS TABLE")
    st.dataframe(iris, 500, 100) # Width, Height
    st.title('table()')
    st.table(iris)
    st.title('write()')
    st.write(iris)
    myCode = """
    def hello()
      print("hi")
    """
    st.code(myCode, language = "Python")
    


  • st.dataframe()
    데이터프레임을 인자로 받아서 해당 데이터프레임을 인터렉티브한 테이블로 출력합니다.
  • st.table()
    데이터프레임을 테이블로 출력하는 함수입니다.
    데이터프레임의 모든 열과 행을 보여줍니다.
    데이터프레임의 크기에 따라 자동으로 크기를 조정합니다.
  • st.code()
    코드를 출력하는 함수입니다. 코드를 보기 좋게 출력하고, 코드의 언어를 지정할 수 있습니다.

    name = 'Sukyung'
    if st.button('Submit'):
      st.write(f'name: {name.upper()}')
    # RadioButton
    s_state = st.radio('Status', ('활성화', '비활성화'))
    if s_state == '활성화':
      st.success('활성화 상태')
    else:
      st.error('비활성화 상태')
    # Check Box
    if st.checkbox('show/hide'):
      st.text('무언가를 보여줘!')
    # Select Box
    p_lans = ['Python', 'Julia', 'Go', 'Rust', 'JAVA', 'R']
    choice - st.selectbox('프로그래밍 언어', p_lans)
    st.write(f'{choice} 언어를 선택함')
    # multiple selection
    lans = ("영어", "일본어", "중국어", "독일어")
    myChoice = st.multiselect("언어 선택", lans, default = "중국어")
    st.write('선택', myChoice)
    # Slider
    age = st.slider('나이', 1, 120)
    st.write(age)
    


  • st.button()
    버튼을 생성하는 함수입니다. 버튼을 생성하고 버튼이 클릭되었는지 여부를 반환합니다.
  • st.radio()
    라디오 버튼을 생성하는 함수입니다. 이 함수는 라디오 버튼을 생성하고 사용자가 선택한 값을 반환합니다.
  • st.checkbox()
    이 위젯은 체크박스를 보여주며 체크박스의 상태를 반환합니다.
    • label: 체크박스 옆에 표시되는 라벨입니다.
    • value: 체크박스의 초기값입니다.
    • help: 체크박스 아래에 표시되는 도움말입니다.
    • on_change: 체크박스의 상태가 변경될 때 호출되는 콜백 함수입니다.
    • args: 콜백 함수에 전달할 위치 인수입니다.
    • kwargs: 콜백 함수에 전달할 키워드 인수입니다.
    • disabled: 체크박스를 비활성화할지 여부입니다.
    • label_visibility: 라베을 언제 표시할지 여부입니다.
  • st.selectbox()
    사용자에게 선택지를 보여주며 선택한 값을 반환합니다.
    • label: select 위젯 옆에 표시되는 라벨입니다.
    • options: 사용자에게 보여줄 선택지입니다.
    • index: select 위젯의 초기값입니다.
    • format_func: 선택지의 표시 방법을 지정하는 함수입니다.
    • key: 위젯의 고유한 식별자입니다.
    • help: select 위젯 아래에 표시되는 도움말입니다.
    • on_change: select 위젯의 상태가 변경될 때 호출되는 콜백 함수입니다.
    • args: 콜백 함수에 전달할 위치 인수입니다.
    • kwargs: 콜백 함수에 전달할 키워드 인수입니다.
    • disabled: select 위젯을 비활성화할지 여부입니다.
    • label_visibility: 라벨을 언제 표시할지 여부입니다.
  • st.multiselect()
    사용자에게 여러 선택지를 보여주며 사용자가 선택한 값을 반환합니다.
    • default: multiselect 위젯의 초기값입니다.
    • disabled: multiselect 위젯을 비활성화할지 여부입니다.
    • max_selections: 최대 선택 가능한 항목 수 입니다.
    • label, options, format_func, help, on_change, args, kwargs는 selectbox()함수와 같습니다.
  • st.slider()
    사용자에게 값을 선택하도록 허용하며, 사용자가 선택한 값을 반환합니다.
    • label: slider 위젯 옆에 표시되는 라벨입니다.
    • min_value: 슬라이더의 최소값입니다.
    • max_value: 슬라이더의 최대값입니다.
    • value: 슬라이더의 초기값입니다.
    • step: 슬라이더의 간격입니다.
    • format: 슬라이더의 값 표시 방법을 지정하는 문자열 형식입니다.
    • key: 위젯의 고유한 식별자입니다.
    • help: slider 위젯 아래에 표시되는 도움말입니다.

      # 이미지 가져오기
      img = Image.open('data/image_01.jpg')
      st.image(img)
      url = 'data/image_01.jpg'
      st.image(url)
      # 비디오 출력
      with open('data/secret_of_success.mp4', 'rb') as rb:
        video_file = rb.read()
        st.video(video_file, start_time = 1)
      # 오디오 출력
      with open('data/song.mp3', 'rb') as rb:
        audio_file = rb.read()
        st.audio(audio_file, format = "audio/mp3")
      


  • Image.open()
    PIL에서 제공하는 함수로 이미지 파일을 열고 PIL 이미지 객체를 반환합니다.
  • st.image()
    이 이미지 위젯은 이미지를 표시하고 이미지를 클릭하면 새 창에서 이미지를 열 수 있습니다.
    • image: 표시할 이미지입니다.
    • caption: 이미지 아래에 표시할 캡션입니다.
    • width: 이미지의 너비입니다.
    • use_column_width: True로 설정하면 열의 너비에 맞게 이미지가 조정됩니다.
    • clamp: True로 설정하면 이미지가 자르기 모드로 표시됩니다.
  • st.video()
    이 위젯은 비디오를 표시하고 비디오를 클릭하면 새 창에서 비디오를 열 수 있습니다.
    • data: 표시할 비디오 데이터입니다.
    • format: 데이터의 형식입니다.
    • start_time: 비디오의 시작 시간입니다.
    • width: 비디오의 너비입니다.
    • height: 비디오의 높이입니다.
  • st.audio() 이 위젯은 오디오를 표시하고, 오디오를 클릭하면 새 창에서 오디오를 열 수 있습니다.
    • data: 표시할 오디오 데이터입니다.
    • format: 데이터의 형식입니다.


streamlit 오늘 공부한 내용을 정리해봤습니다.

댓글남기기