Python/Streamlit

Streamlit) UIν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ²„νŠΌ λ§Œλ“€κΈ°

567Rabbit 2024. 4. 26. 17:22

 

 

python
λ‹«κΈ°
# UI ν•¨μˆ˜λ“€ (λ²„νŠΌ λ“±λ“±) import streamlit as st import pandas as pd def main() : ​​​​df = pd.read_csv('./data/iris.csv') ​​​​#λ²„νŠΌ λ§Œλ“€κΈ° ​​​​#μœ μ €κ°€ λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ λ°μ΄ν„°ν”„λ ˆμž„μ„ 보여쀀닀 ​​​​ ​​​​if st.button(label='데이터보기') : ​​​​​​​​st.dataframe(df) ​​​​​​​​ ​​​​#'λŒ€λ¬Έμž' λ²„νŠΌμ„ λ§Œλ“€κ³ , λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ species 컬럼의 값듀을 λŒ€λ¬Έμžλ‘œ λ³€κ²½ν•œ 데이터 ν”„λ ˆμž„μ„ 화면에 λ³΄μ—¬μ£Όμ„Έμš” ​​​​if st.button(label='λŒ€λ¬Έμž'): ​​​​​​​​​df['species'] = df['species'].str.upper() ​​​​​​​​​st.dataframe(df) ​​​​else : ​​​​​​​​​st.text('아무것도 μ•ˆλˆŒλ €μŠ΅λ‹ˆλ‹€') ​​​​​​​​ ​​​​#λΌλ””μ˜€λ²„νŠΌ : μ—¬λŸ¬κ°œμ€‘μ—μ„œ ν•œκ°œ μ„ νƒν•˜κ²Œ ν• λ•Œ ​​​​ ​​​​my_order = ['μ˜€λ¦„μ°¨μˆœ μ •λ ¬','λ‚΄λ¦Όμ°¨μˆœ μ •λ ¬'] ​​​​status = st.radio('정렬방식 μ„ νƒν•˜μ„Έμš”', my_order) ​​​​ ​​​​print(status) ​​​​ ​​​​# petal_length컬럼으둜 μ •λ ¬ν•΄μ„œ df보여쀀닀 ​​​​if status == my_order[0] : ​​​​​​​​st.dataframe(df.sort_values('petal_length',ascending=True)) ​​​​elif status == my_order[1] : ​​​​​​​​st.dataframe(df.sort_values('petal_length',ascending=False)) ​​​​​​​​ ​​​​​​​​ ​​​​#μ²΄ν¬λ°•μŠ€ : λ‘˜μ€‘μ— ν•˜λ‚˜λ§Œ μ„ νƒν•˜κ²Œλ” λ§Œλ“€λ•Œ (체크/ν•΄μ œ) ​​​​#μ²΄ν¬ν•˜λ©΄ ν—€λ“œ 5개 보여주고 ν•΄μ œν•˜λ©΄ μ•ˆλ³΄μ—¬μ£Όλ„λ‘ ​​​​if st.checkbox('ν—€λ“œ 5개 보기') : ​​​​​​​​st.dataframe(df.head()) ​​​​ ​​​​#μ…€λ ‰νŠΈλ°•μŠ€ : μ—¬λŸ¬κ°œμ—μ„œ ν•œκ°œλ§Œ κ³ λ₯΄κ²Œ ν•˜λ˜, λ¦¬μŠ€νŠΈκ°€ λ§Žμ„ λ•Œ μ‚¬μš©ν•œλ‹€ ​​​​language = ['Python','C','Java','Go','PHP','Dart'] ​​​​ ​​​​my_choice = st.selectbox('μ’‹μ•„ν•˜λŠ” μ–Έμ–΄ μ„ νƒν•˜μ„Έμš”', language) ​​​​ ​​​​if my_choice == language[0] or my_choice == language[2] : ​​​​​​​​st.text('정말 μž¬λ―ΈμžˆλŠ” μ–Έμ–΄μž…λ‹ˆλ‹€') ​​​​elif my_choice == language[3] or my_choice == language[5] : ​​​​​​​​st.text('배우고 μ‹ΆμŠ΅λ‹ˆλ‹€') ​​​​else : ​​​​​​​​st.text('였래된 μ–Έμ–΄μž…λ‹ˆλ‹€') ​​​​ ​​​​#λ©€ν‹° μ…€λ ‰νŠΈ : μ—¬λŸ¬κ°œμ€‘μ—μ„œ, μ—¬λŸ¬κ°œλ₯Ό μ„ νƒν•˜κ²Œ ν• λ•Œ ​​​​#μœ μ €κ°€ μ„ νƒν•œ μ»¬λŸΌμ„, λ°μ΄ν„°ν”„λ ˆμž„μœΌλ‘œ λ³΄μ—¬μ£Όλ˜ 아무것도 μ„ νƒμ•ˆν•˜λ©΄ 아무것도 λ‚˜μ˜€μ§€ μ•Šκ²Œ ν•˜μ‹œμ˜€ ​​​​ ​​​​choice_list = st.multiselect('μ›ν•˜λŠ” μ»¬λŸΌμ„ μ„ νƒν•˜μ„Έμš”', df.columns) ​​​​ ​​​​if choice_list : ​​​​​​​​st.dataframe(df[choice_list]) ​​​​else : ​​​​​​​​st.text('') ​​​​ ​​​​#μŠ¬λΌμ΄λ” : 숫자 μ‘°μ •ν•˜λŠ”λ° 주둜 μ‚¬μš© ​​​​st.slider('데이터 선택', -5.0,10.5,0.0,0.5) ​​​​ ​​​​#λ‚˜μ΄λ₯Ό μŠ¬λΌμ΄λ”λ‘œ μž…λ ₯λ°›λŠ”λ‹€ 1~120μ„ΈκΉŒμ§€ ​​​​ ​​​​age = st.slider('λ‚˜μ΄λ₯Ό μž…λ ₯ν•˜μ„Έμš”', 1,120,20,1) ​​​​ ​​​​if age : ​​​​​​​​st.write(f'μ„ νƒν•œ λ‚˜μ΄λŠ” {age}μ„Έ μž…λ‹ˆλ‹€') ​​​​else : ​​​​​​​​pass ​​​​ ​​​​#μ΅μŠ€νŽœλ” ​​​​with st.expander('Hello') : ​​​​​​​​st.text('λ°μ΄ν„°ν”„λ ˆμž„μž…λ‹ˆλ‹€.') ​​​​​​​​st.dataframe(df) ​​​​ if __name__ == '__main__' : ​​​​main()

 

 

 

 

λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ 데이터λ₯Ό λ³Ό 수 μžˆλ‹€.  st.button

 

 

 

 

st.button + str.upper()

 

λŒ€λ¬Έμž λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄, speciesκ°€ λŒ€λ¬Έμžλ‘œ λ°”κΎΌ λ°μ΄ν„°ν”„λ ˆμž„μ„ λ³Ό 수 μžˆλ‹€.

 

 

 

 

 

 

λΌλ””μ˜€λ²„νŠΌ

 

 

 

 

 

 

μ²΄ν¬λ°•μŠ€

 

 

 

 

μ…€λ ‰νŠΈλ°•μŠ€

 

 

 

 

 

 

λ©€ν‹° μ…€λ ‰νŠΈ

 

 

 

 

μŠ¬λΌμ΄λ”

 

 

 

 

 

 

μ΅μŠ€νŽœλ”