본문 바로가기

Python/Streamlit11

[Python] Streamlit으로 웹 대시보드 만들기 Python Streamlit 라이브러리를 이용한 대시보드 만들기 웹 대시보드 개발 순서 1. 분석할 데이터를 준비한다 - 원하는 정보를 데이터 제공사이트 검색해서 다운로드 2. jupyter notebook으로 데이터를 분석한다 (필요에 의해서 머신러닝을 수행할 수도 있다) - 가져온 데이터를 필요한 컬럼만 엑세스하고 nan값 제거 - 각 컬럼별 최소값, 최대값, 상관관계 등 데이터를 분석한다 - 가져온 데이터로 머신러닝 3. 분석이 완료되면 웹 대시보드로 개발한다 (웹 대시보드는 Visual Studio Code로 개발) - Visual Studio Code에서 Streamlit 라이브러리를 사용해 웹 대시보드를 만든다 - 터미널에 streamlit run 파일명.py 입력하면 빈 웹 대시보드가 실행.. 2023. 11. 22.
[Python] Streamlit에서 제공하는 차트들과 altair, plotly 차트 이용 방법 line_chart(), area_chart(), bar_chart(), altair_chart(), plotly_chart() Streamlit에서 제공하는 라인, 영역 , 바, map 차트와 altair, plotly 차트를 알아보자. 라인, 영역, 바, map 차트 ) # 스트림릿에서 제공하는 라인 차트 st.line_chart(data=df_selected) -> 라인 차트 # 스트림릿에서 제공하는 영역 차트 st.area_chart(data=df_selected) -> 영역 차트 # 스트림릿에서 제공하는 바 차트 st.bar_chart(df_selected) -> 바 차트 # 위치정보를 가지고 지도에 표시하는 방법 # 스트림릿의 map 차트 df_location = pd.read_csv("./data/location.csv", index_col=0) st.dataframe(df_location) st.map(data=df.. 2023. 11. 21.
[Python] Streamlit에서 여러 차트 그리기 scatter(), regplot(), hist(), plot() 분석은 jupyter notebook에서 하고 개발은 vscode에서 한다. # matplotlib이나 seaborn을 이용한 경우 fig1 = plt.figure() plt.scatter(data= df, x="petal_length", y="petal_width") plt.title("Petal length vs width") plt.xlabel("tepal length") plt.ylabel("tepal width") st.pyplot(fig1) fig2 = plt.figure() sb.regplot(data=df, x="petal_length", y="petal_width") st.pyplot(fig2) -> scatter는 산점도만, regplot은 산점도 + 회귀선이 나온다. fig3 = pl.. 2023. 11. 21.
[Python] 파일들 분리해서 처리하는 방법 지금까지는, 앱 개발을 할 때, 파일 하나로 코드 작성을 모두 했다. 실무에서는 파일을 여러개로 쪼개서 개발한다. 파일을 나눠서 개발하는 장점. 1. 유지보수! 2. 협업가능! 모듈별로 나눠서 개발한다. 기존 방법 ) def main() : st.title("파일 분리 앱") menu = ["Home", "EDA", "ML"] choice = st.sidebar.selectbox("메뉴 선택" , menu) if choice == menu[0] : st.subheader("Home 화면") st.text("파일을 분리해서 처리하는 프로젝트 입니다.") elif choice == menu[1] : st.subheader("EDA 화면") df = pd.read_csv("./data/iris.csv") pr.. 2023. 11. 21.
[Python] Streamlit 이미지, csv 파일 업로드 하는 방법 # 해당 디렉토리에 파일을 저장해 주는 함수 def save_uploaded_file(directory, file) : # 1. 위의 directory가 있는지 확인 후 없으면 새로 생성 if not os.path.exists(directory) : os.makedirs(directory) # 2. 파일을 이 디렉토리 안에 저장한다. with open(os.path.join(directory, file.name) , "wb") as f : f.write(file.getbuffer()) # 3. 파일 저장 성공했으니까 화면에 보여준다 return st.success(f"{directory}에 {file.name}이 저장됐습니다.") -> 해당 디렉토리에 파일을 저장해주는 함수 정의 def main() : .. 2023. 11. 21.
[Python] Streamlit 사용자에게 입력 받기 text_input(), text_area(), number_input(), strftime(), date_input(), time_input(), color_picker() 사용자에게 입력 받는 방법 1. 텍스트를 입력 받는 방법 2. 숫자 입력 받는 방법 3. 날짜 입력 받는 방법 4. 시간 입력 받는 방법 5. 색깔 입력 받는 방법 날짜와 시간은 strftime() -> 형식 포맷 함수를 사용한다. 2023. 11. 21.
[Python] Streamlit 이미지(웹 이미지), 동영상(Youtube) 파일 추가하기 image(), video(), open() 이미지 / 동영상을 화면에 보여주기 import streamlit as st from PIL import Image -> from PIL import Image를 해준다. 1. 가지고 있는 이미지 파일 img = Image.open("./data/image_03.jpg") st.image(img) # 원본 사이즈 st.image(img, use_column_width= True) # 현재 컬럼의 폭에 맞추어 표시 -> Image.open(파일경로) 후 st.image() 함수 사용 : 원본 사이즈 -> st.image(use_column_width = True) 사용 : 현재 컬럼의 폭에 맞게 표시 현재 컬럼의 폭 = 현재 사용 중인 Streamlit 레이아웃의 컬럼 폭 2. 웹에서 찾은 이미지 파일(저.. 2023. 11. 20.
[Python] Streamlit 위젯(UI) 만들고 사용하는 button(), radio(), checkbox(), selectbox(), multiselect(), slider(), expander() 함수 설명 예제) -> "데이터프레임 보기" 라는 버튼이 생긴다. 클릭 시 True 값을 가진다. -> 각 라디오버튼을 클릭 하면 해당 문자열이 변수에 할당된다. -> "데이터프레임 보이기"라는 체크박스가 생긴다. 클릭 시 True 값을 가진다. -> 여러개 중에 한개를 선택할 때 사용한다. 선택 시 변수에 선택한 값이 할당된다. -> 여러개를 동시에 선택할 수 있다. -> st.slider(설명(제목) , 최소값 , 최대값 , 이동 간격(step=), 시작값(value=) ) -> st.expander() 함수는 UI 요소를 확장 또는 축소할 수 있는 토글 기능을 제공하는 함수이다. -> with = 파일이나 리소스를 효과적으로 관리하고 예외 상황에서도 안전하게 리소스를 정리할 수 있도록 하는 pyth.. 2023. 11. 20.
[Python] Streamlit 웹에 DataFrame 띄우는 방법 st.dataframe() import streamlit as st import pandas as pd # 판다스의 데이터프레임을 웹화면으로 보여주는 방법 def main(): st.title("아이리스 꽃 데이터") df = pd.read_csv("./data/iris.csv") # csv 파일을 판다스로 읽어옴 st.dataframe(df) count = df["species"].nunique() st.text(f"아이리스 꽃의 종류의 개수는 총 {count}가지 입니다") if __name__ == "__main__" : main() -> pd.read_csv()로 실제 csv 파일을 읽어와서 dataframe을 만들고 st.dataframe() 함수를 써서 화면에 띄운다. 2023. 11. 20.
[Python] Streamlit 글자 적는 기본적인 함수들 title, header, subheader, ... 2023. 11. 20.