본문 바로가기

Python/Streamlit13

[Python] Streamlit으로 웹 대시보드 만들기 📝Python Streamlit 라이브러리를 이용한 대시보드 만들기 웹 대시보드 개발 순서 1. 분석할 데이터를 준비한다 - 원하는 정보를 데이터 제공사이트 검색해서 다운로드 2. jupyter notebook으로 데이터를 분석한다 (필요에 의해서 머신러닝을 수행할 수도 있다) - 가져온 데이터를 필요한 컬럼만 엑세스하고 컬렴명 변경, nan값 제거 - 각 컬럼별 최소값, 최대값, 상관관계 등 데이터를 분석한다 - 가져온 데이터로 머신러닝 3. 분석이 완료되면 웹 대시보드로 개발한다 (웹 대시보드는 Visual Studio Code로 개발) - Visual Studio Code에서 Streamlit 라이브러리를 사용해 웹 대시보드를 만든다 - 터미널에 streamlit run 파일명.py 입력하면 빈 웹.. 2022. 12. 22.
[Python] Streamlit sidebar 만들기 📝Python Streamlit 사이드바 만들기 사이드바를 만들고 각 메뉴는 파일 분리해서 함수정의로 만들어 사용 import streamlit as st from app_home import run_home_app from app_eda import run_eda_app from app_ml import run_ml_app def main() : st.title('자동차 가격 예측 앱') menu = ['Home','EDA','ML'] choice = st.sidebar.selectbox('메뉴', menu) if choice == 'Home' : run_home_app() elif choice == 'EDA' : run_eda_app() elif choice == 'ML' : run_ml_app() .. 2022. 12. 13.
[Python] Streamlit plotly, altair 차트 그리기 📝Python Streamlit 차트 그리기 import streamlit as st import numpy as np import pandas as pd # plotly 라이브러리 import plotly.express as px # altair 라이브러리 import altair as alt def main() : # altair 라이브러리의 mark_cicle 함수 사용법 df2 = pd.read_csv('streamlit_data/iris.csv') chart = alt.Chart(df2).mark_circle().encode(x= 'petal_length', y= 'petal_width', color ='species') st.altair_chart(chart) # plotly pie 차트 그리.. 2022. 12. 13.
[Python] Streamlit 차트 그리기 line_chart, area_chart, bar_chart, map 📝Python Streamlit 차트 그리기 import streamlit as st import numpy as np import pandas as pd def main() : df = pd.read_csv('streamlit_data/lang_data.csv') st.dataframe(df.head()) colum_menu = df.columns[1 : ] choice_list = st.multiselect('프로그래밍 언어를 선택하세요', colum_menu) if len(choice_list) != 0 : # 유저가 선택한 언어만 차트를 그린다 df_selected = df[choice_list] # 스트림릿에서 제공하는 라인차트 st.line_chart(df_selected) # 스트림릿에서 제.. 2022. 12. 13.
[Python] Streamlit matplotlib, seaborn 차트 그리기 📝Python Streamlit 차트 그리기 주피터 노트북에서 그렸던 plt 차트나 sb 차트는 스트림릿에서 표시하려면 plt.figure() 로 먼저 영역을 잡아주고 st.pyplot() 함수로 웹 화면에 그려준다(데이터 프레임의 내장 차트도 마찬가지로 해준다) import streamlit as st import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sb def main() : st.title('차트 그리기 1') df = pd.read_csv('streamlit_data/iris.csv') st.dataframe(df.head()) # sepal_length 와 sepal_width 의 관계.. 2022. 12. 13.
[Python] Streamlit 파일 분리해서 처리하기 📝Python Streamlit 파일 분리해서 처리하기 사용할 기능을 각 파일로 만들어 함수로 저장해 사용하면 유지보수가 편리하다 # app_home.py 파일 import streamlit as st def run_home_app() : st.subheader('Home 화면') st.text('홈 화면에서 할 일을 여기에 코딩합니다') # app_ml.py 파일 import streamlit as st def run_ml_app() : st.subheader('머신러닝 화면') # app_eda.py 파일 import streamlit as st import pandas as pd def run_eda_app() : st.subheader('EDA 화면') df = pd.read_csv('stream.. 2022. 12. 13.
[Python] Streamlit 파일 업로드 📝Python Streamlit 파일 업로드 하기 import와 함수 정의 import streamlit as st import pandas as pd import os from datetime import date, datetime from PIL import Image # 함수 정의. 디렉토리(폴더)명과 파일을 알려주면해당 디렉토리에 파일을 저장해 주는 함수 def save_uploaded_file(directory, file) : # 1. 디렉토리가 있는지 확인하여 없으면 먼저 디렉토리부터 만든다 if not os.path.exists(directory) : os.makedirs(directory) # 2. 디렉토리가 있으니 파일을 저장한다 with open(os.path.join(directory.. 2022. 12. 13.
[Python] Streamlit 유저한테 데이터 입력 받기 📝Python Streamlit 유저한테 데이터 입력받기(User Input) import streamlit as st def main() : # 텍스트를 입력 받는 방법 name = st.text_input('이름을 입력하세요') st.title(name) name2 = st.text_input('이름 입력', max_chars=5) # 글자수 제한 st.title(name2) message = st.text_area('메세지를 입력하세요', height=10) # 초기 높이 설정 st.text(message) # 숫자 입력 받는 방법 year = st.number_input('출생년도를 입력하세요',1900, 2300) # 최소, 최대값 제한 st.text(year) number = st.number.. 2022. 12. 13.
[Python] Streamlit 이미지, 동영상 파일 추가하기 Image, open 📝Python Streamlit 이미지, 동영상 파일 추가하기 import streamlit as st from PIL import Image # ↑ 이미지 처리를 위한 라이브러리 def main() : img = Image.open('저장된 이미지 파일 경로') st.image(img) st.image(img, use_column_width=True) # 비율을 화면에 맞춘다 # 외부에서 따온 이미지 url도 입력 가능하다 image_url = '복사한 url 주소' st.image(image_url) # 동영상 video_file = open('저장된 동영상 파일 경로', 'rb') st.video(video_file) if __name__ == '__main__' : main() 2022. 12. 12.
[Python] Streamlit 위젯 만들기 button, radio, checkbox, selectbox, multiselect, slider, expander 📝Python Streamlit 위젯 만들기(UI함수 사용) 버튼 button 라디오 버튼 radio 체크박스 checkbox 셀렉트박스 selectbox 다중선택박스 multiselect 슬라이더 slider 익스펜더 expander import streamlit as st import pandas as pd 버튼 button def main() : df = pd.read_csv('streamlit_data/iris.csv') # 버튼을 클릭하면 데이터프레임이 보이도록 만들기 if st.button('데이터프레임 보기') : st.dataframe(df) 라디오 버튼 radio def main() : status = st.radio('정렬을 선택하세요', ['오름차순 정렬','내림차순 정렬']) if .. 2022. 12. 12.