Streamlit 사용 방법 :데이터 앱을 구축하고 공유하는 가장 빠른 방법입니다.

안녕하세요 🖐,
내용으로 이동하기 전에 간단히 살펴보십시오. 👀


목차


  • Streamlit은 머신 러닝 및 데이터 과학을 위한 아름다운 맞춤형 웹 앱을 쉽게 만들고 공유할 수 있게 해주는 오픈 소스 Python 라이브러리입니다. 🤩
  • 단 몇 분만에 강력한 데이터 앱을 구축하고 배포할 수 있습니다 🚀🚀 - 이제 시작하겠습니다!
  • Python 3.6 이상이 설치되어 있는지 확인하십시오.
  • PIP를 사용하여 Streamlit을 설치하고 'hello world' 앱을 실행합니다.

  • pip install streamlit
    streamlit hello
    

    첫 번째 Streamlit 앱 만들기



    먼저 새 Python 스크립트를 만들고 Streamlit을 가져옵니다.

    app.py라는 새 Python 파일을 만든 다음 IDE 또는 텍스트 편집기로 엽니다.

    다음으로 Streamlit 가져오기

    import streamlit as st
    # To make things easier later, we're also importing numpy and pandas for
    # working with sample data.
    import numpy as np
    import pandas as pd
    


    앱을 실행합니다. 기본 브라우저에서 새 탭이 열립니다. 지금은 비어 있습니다. 괜찮아.

    streamlit run app.py
    


    데이터 프레임 쓰기
    마법 명령과 함께 st.write()는 Streamlit의 "스위스 군용 칼"입니다. 텍스트, 데이터, Matplotlib 그림, Altair 차트 등 거의 모든 것을 st.write()에 전달할 수 있습니다. 걱정하지 마세요. Streamlit이 문제를 파악하고 올바른 방식으로 렌더링합니다.

    st.title('My first app')
    st.write("Here's our first attempt at using data to create a table:")
    st.write(pd.DataFrame({
        'first column': [1, 2, 3, 4],
        'second column': [10, 20, 30, 40]
    }))
    


    출력은 다음과 같습니다



    차트 및 지도 그리기



    Streamlit은 Matplotlib, Altair, deck.gl 등과 같은 여러 가지 인기 있는 데이터 차트 라이브러리를 지원합니다. 이 섹션에서는 막대 차트, 선 차트 및 지도를 앱에 추가합니다.

    꺾은선형 차트 그리기
    st.line_chart()를 사용하여 앱에 선 차트를 쉽게 추가할 수 있습니다. Numpy를 사용하여 무작위 샘플을 생성한 다음 차트로 표시합니다.

    chart_data = pd.DataFrame(
         np.random.randn(20, 3),
         columns=['a', 'b', 'c'])
    st.line_chart(chart_data)
    




    지도 그리기



    st.map()을 사용하면 지도에 데이터 포인트를 표시할 수 있습니다. Numpy를 사용하여 일부 샘플 데이터를 생성하고 샌프란시스코 지도에 플로팅해 보겠습니다.

    map_data = pd.DataFrame(
        np.random.randn(1000, 2) / [50, 50] + [37.76, -122.4],
        columns=['lat', 'lon'])
    
    st.map(map_data)
    




    진행 상황 표시


  • 장기 실행 계산을 앱에 추가할 때 st.progress()를 사용하여 상태를 실시간으로 표시할 수 있습니다.

  • 먼저 시간을 가져오겠습니다. 장기 실행 계산을 시뮬레이트하기 위해 time.sleep() 메서드를 사용할 것입니다.
    import time
    그런 다음 코드를 추가하십시오.

    left_, right_ = st.beta_columns(2)
    latest_iteration = st.empty()
    bar = st.progress(0)
    pre = left_.button('Start counter')
    if pre:
      bar.progress(0)
      for i in range(100):
        # Update the progress bar with each iteration.
        latest_iteration.text(f'Iteration {i+1}')
        bar.progress(i + 1)
        time.sleep(0.1)
    
    




    앱 공유


  • Streamlit 앱을 만든 후에는 공유할 시간입니다! Streamlit 공유를 사용하여 앱을 무료로 배포, 관리 및 공유할 수 있습니다.
  • Streamlit 공유는 현재 초대 전용이므로 초대를 요청하십시오.

  • 간단한 3단계로 작동합니다: 🥳
  • 공개 Github 리포지토리에 앱 배치(및 requirements.txt가 있는지 확인!)
  • share.streamlit.io에 로그인
  • '앱 배포'를 클릭한 다음 GitHub URL을 붙여넣습니다
  • .

    그게 다야! 🎈이제 전 세계와 공유할 수 있는 공개 배포된 앱이 있습니다. 💪

    앱을 만드는 방법에 대해 자세히 알아보기 - Official docs

    공유 방법에 대해 자세히 알아보기 - Official workflow

    지금은 그게 다야.

    이것은 2020년의 나의 마지막 게시물이었습니다. 정말 흥미롭고 이상한 해였습니다.

    So in retrospect, in 2015, not a single person got the answer right to "Where do you see yourself 5 years from now?"




    다행히 올해는 다른 해보다 더 많은 내용을 쓸 수 있게 되었습니다.

    드디어 끝났습니다. 한 분 한 분에게 감사하다는 말씀을 드리고 싶었습니다.



    제 내용을 읽어주셔서 감사합니다. 내 게시물에서 새로운 것을 알게 된 경우 알려주십시오.

    수정해야 할 실수나 더 연구해야 할 주제가 있으면 주저하지 말고 공유하세요.

    내년에 봐

    하스타 프론토! 🙌🙌

    좋은 웹페이지 즐겨찾기