전체 글 175

웹 대시보드 - 웹 대시보드 개발 순서, Jupyter to Streamlit

웹 대시보드 개발 방법 1. 분석할 데이터를 준비한다. df = pd.read_csv('data/Car_Purchasing_Data.csv',encoding='ISO-8859-1') 2. 주피터 노트북으로 데이터를 분석한다. df.head() df.describe() df.columns[4:] df[df['Annual Salary']==df['Annual Salary'].min() ] df[df['Annual Salary']==df['Annual Salary'].max() ] # 등등 데이터들을 확인한다. 3. 필요에 의해서 머신러닝을 수행할 수도 있다. # 자동차 구매 금액을 예측하는 인공지능을 만들어보고 싶다. df.isna().sum() y = df['Car Purchase Amount'] X = ..

개발/대시보드 2022.12.13

웹 대시보드 - 차트 그리기(scatter,regplot,hist,altair,map,plotly)

* import import streamlit as st import pandas as pd import matplotlib.pyplot as plt import seaborn as sb * 데이터 가져오기 df = pd.read_csv('streamlit_data/iris.csv') 1. Scatter 를 이용한 차트 # streamlit 은 plt.figure로 차트 영역을 지정한다. fig = plt.figure() plt.scatter(data = df , x = 'sepal_length',y='sepal_width') plt.title('Sepal Length vs Width') plt.xlabel('sepal length') plt.ylabel('sepal width') st.pyplot(fi..

개발/대시보드 2022.12.13

웹 대시보드 - sidebar 를 사용할 때 파일을 분리하여 개발하는 방법.

다음과 같은 코드가 있습니다. menu = ['Home','EDA','ML','About'] choice = st.sidebar.selectbox('메뉴',menu) if choice == 'Home': pass elif choice == 'EDA' : pass elif choice == 'ML' : pass elif choice == 'About' : pass 사이드바에 선택상자인데 각각의 항목들을 전부 한 페이지에 작성하면 추후에 유지보수 작업에 어려움이 있습니다. 따라서 각 항목을 파일로 분리한 다음에 가져오는 방법을 이용합니다. app_home.py import streamlit as st def run_home_app() : st.subheader('Home 화면') st.text('홈화면에서 ..

개발/대시보드 2022.12.13

웹 대시보드 - 업로드(image,csv)

함수 정의 파일과 디렉토리를 알려주면 저장한다. import streamlit as st import os def save_upload_file(directory,file) : # 1. 디렉토리가 있는지 확인하여 , 없으면 먼저, 디렉토리부터 만든다. 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('{}에 {}파일이 저장되었습니다.'.format(direct..

개발/대시보드 2022.12.13

웹 대시보드 - 입력받기(input)

text_input 문자를 입력받는다. number_input 숫자를 입력받는다. date_input 날짜를 입력받는다. time_input 시간을 입력받는다. text_input('',type='password') 비밀번호를 입력받는다. color_picker 색상코드를 입력받는다. 1. text_input name = st.text_input('이름을 입력하세요') st.title(name) 2. number_input year = st.number_input('출생년도를 입력하세요.',min_value=1,max_value=9000) st.text(year) 3. date_time my_date = st.date_input('약속날짜 입력 : ') st.write(my_date) 4. time_in..

개발/대시보드 2022.12.13

웹 대시보드 - 여러 UI 함수 4(Image,video)

1. image # 이미지 처리를 위해 import 해준다. from PIL import Image 그 다음 open 함수를 통해 가져온다. # 내 로컬에 있는 이미지 가져온다. img = Image.open('streamlit_data/image_03.jpg') st.image(img) # use_column_width 를 True를 하게 되면 사용 공간에 가로 길이만큼 # 늘려서 가져오게 된다. st.image(img,use_column_width=True) # 또는 인터넷에서 주소를 가져와도 된다. img_url = '인터넷 이미지 주소' st.image(img_url) 판다는 내 로컬 이미지를 , 다른 이미지는 인터넷에 떠돌던 주소를 넣었다. 2. video 비디오는 streamlit 으로 열어 ..

개발/대시보드 2022.12.12

웹 대시보드 - 여러 UI 함수 3(button,radio,checkbox,selectbox,multiselect,slider,expander)

button 버튼을 생성한다. radio 라디오 형식으로 버튼을 생성한다. checkbox 체크를 만든다. selectbox 선택박스를 만든다. multiselect 선택박스를 여러개 선택할수 있다. slider 슬라이더 형식으로 만들 수 있다. expander 확장탭을 만들 수 있다. 1. button # 버튼을 클릭하면, 데이터프레임이 보이도록 만들기. if st.button('데이터프레임 보기') : st.dataframe(df) # 버튼을 누르면 소문자와 대문재로 바꿔주기. name = 'Mike' if st.button('대문자로') : st.text(name.upper()) if st.button('소문자로') : st.text(name.lower()) 2. radio # 라디오 버튼 stat..

개발/대시보드 2022.12.12

웹대시보드 - 데이터프레임을 읽어 streamlit 으로 출력

# 판다스의 데이터프레임을, 웹화면으로 보여주는 방법 import streamlit as st import pandas as pd def main() : st.title('아이리스 꽃 데이터') df = pd.read_csv('streamlit_data/iris.csv') st.dataframe(df) species = df['species'].unique() st.text('아이리스 꽃은 '+species + '으로 되어있다.') if __name__ == '__main__' : main() 위 코드처럼 streamlit 에 dataframe() 으로 읽어올수있다.

개발/대시보드 2022.12.12

웹 대시보드 - 여러 UI 함수 2( success,warning,info,error,help)

success 성공으로 강조 (녹색) warning 위험으로 강조 (노란색) info 정보를 강조 (파란색) error 오류를 강조(빨간색) help 함수의 설명을 보여준다. import streamlit as st def main() : st.success('성공했을때 메시지를 보여줄때 사용') st.warning('경고 메시지를 보여주고 싶을때') st.info('정보성 메시지를 보여주고 싶을때') st.error('문제가 발생했음을 보여주고 싶을때') #파이선의 함수들의 설명을 보여주고 싶을때 st.help(sum) st.help(len) if __name__ == '__main__' : main()

개발/대시보드 2022.12.12

웹 대시보드 - 여러 UI함수 1(title,header,subheader,text)

title 제목을 출력할 수 있다. header 머릿말을 출력할 수 있다. subheader header보다 조금 작게 출력할 수 있다. text 기본 글자 크기로 출력한다. write text보다 조금 더 작게 출력한다. import streamlit as st def main() : st.title('웹 대시보드') st.text('웹 대시보드 개발') st.header('이 영역은 헤더 영역') st.subheader('이 영역은 서브 헤더 영역') if __name__ == '__main__' : main()

개발/대시보드 2022.12.12