Spaces:
Running
Running
import streamlit as st | |
import pandas as pd | |
import matplotlib.pyplot as plt | |
import pandas_bokeh | |
import folium | |
from streamlit_folium import st_folium | |
import requests | |
st.markdown("# ๊ฒฝํฌ๋ ์ธ๊ทผ ๊ฐ์ฑ๋น ์ข์ ๋ง์ง ๋์ด ... ๊ฑด๊ฐ์์ '๊ธ์'") | |
st.markdown("#### '๋ถ์, ์ค์, ํ์์ ์ผ์๊น์ง ๋ค์ํ ์์ ์ธ๊ฒ ์ ๊ณต") | |
st.markdown("#### ์ถ์ ํ์ฌ์ ํ๋ฒ๊ฑฐ-ํซ๋๊ทธ ํธ๋ํธ๋ญ๋ ๋ฑ์ฅ") | |
st.write('''๊ฒฝํฌ๋ ์ธ๊ทผ์๋ ์ต๊ทผ ๊ฐ์ฑ๋น ์ข์ ๋ง์ง๋ค์ด ์์ ๋ค์ด์๋ฉฐ ํ์๋ค ์ฌ์ด์์ ์ธ๊ธฐ๋ฅผ ๋๊ณ ์๋ค. ํ์ ๋ ๋ํ์ ์ง๊ฐ์ฌ์ ์ ๋ง๋ ์ ๋ ดํ ๊ฐ๊ฒฉ๊ณผ ๋ค์ํ๊ณ ํ๋ฆฌํฐ ๋์ ๋ฉ๋ด๋ก ์ ์๋ฌธ์ด ๋๋ฉด์ ์ฑ์ ์ค์ธ ๊ฒ์ด๋ค. | |
์ด์ฒ๋ผ ๊ฒฝํฌ๋ ์ฃผ๋ณ์๋ ํ์๋ค ์ฌ์ด์์ ์ ์๋ฌธ์ด ์์ํ ๊ฐ์ฑ๋น ๋ง์ง๋ค์ด ๋ง๋ค. ๋ฟ๋ง ์๋๋ผ ๋ํ ์ถ์ ๋๋ฉด ๋ค์ํ [ํธ๋ํธ๋ญ](https://namu.wiki/w/%ED%91%B8%EB%93%9C%20%ED%8A%B8%EB%9F%AD)๋ค๋ ์ฐพ์์ ์ ๋ ดํ๊ณ ๋ง์๋ ๋ฉ๋ด๋ฅผ ์ ๋ณด์ด๋ฉฐ ํฐ ์ธ๊ธฐ๋ฅผ ๋๋ค. | |
์ต๊ทผ ๋ฌผ๊ฐ์์น์ผ๋ก ์ธํด ์ธ์๋น ๋ถ๋ด์ด ํฐ ๋ํ์๋ค์๊ฒ ์ด๋ฐ ๊ฐ์ฑ๋น ๋์ ๋ง์ง๊ณผ ํธ๋ํธ๋ญ์ ํ์๋ฐ์ ๋งํ๋ค.''' ) | |
st.write("<br><br><br>", unsafe_allow_html=True) # 3์ค ๋์ด์ฐ๊ธฐ | |
st.markdown("#### ์ผ ๊ฒ ๋น์ง๋ก? ๊ฑด๊ฐ์์ ์ ๋ณด์ด๋ค") | |
st.markdown("#### ์ ๋ ดํ๊ณ ํธ์งํ์ง๋ง ์์๊ณผ ๊ฑด๊ฐ์ ์ค์ข ") | |
st.write('''๊ฒฝํฌ๋ ์ธ๊ทผ ๋ง์ง๋ค์ ๋ฉ๋ด๋ฅผ ์์ธํ ๋ณด๋ฉด ๊ฑด๊ฐํ ์์ฌ๋ฃ๋ ์์์ ํฌ๊ฒ ๊ณ ๋ ค๋์ง ์์ ๊ฒ ๊ฐ์ ์์ฌ์์ด ๋จ๋๋ค. | |
๋ํ๊ฐ์์ ๊ฑด๊ฐ์ ๋ํ ๊ณ ๋ฏผ๋ณด๋ค ์ธ๊ณ ๋ฐฐ๋ถ๋ฅด๊ฒ ๋จน์ ์ ์๋ ๊ณณ์ด ์ธ๊ธฐ์ธ ์ ์ ์ดํด๋๋ค. ํ์ง๋ง ํ๋ฒ์ฏค์ ์์๊ณผ ๊ฑด๊ฐ์ ์๊ฐํด๋ด์ผ ํ๋ค. | |
์ฒญ๋ ๋๋ถํฐ ๊ฑด๊ฐ์์ ์ญ์ทจํ๊ณ ์ฌ๋ฐ๋ฅธ ์์ต๊ด์ ๊ฐ์ ธ์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.''' ) | |
st.markdown("#### ๋ํ๊ฐ ๋จน๊ฑฐ๋ฆฌ, ๊ฑด๊ฐ์ ๊ท ํ์ ์ก์์ผ ํ ๋") | |
st.write(''' ์ ๋ฌธ๊ฐ OOO์ ๋ฐ๋ฅด๋ฉด ~~~~~''') | |
# ์ฌ์ง ์ฝ์ | |
st.image('photo1.jpg', caption='์ง๋ 4์20์ผ ๊ฒฝํฌ๋ ๊ต๋ด์์ ํ์๋ค์ด ํธ๋ํธ๋ญ์์ ์์์ ๊ตฌ๋งคํ๊ณ ์๋ค') | |
st.image('photo2.jpg', caption='๊ฒฝํฌ๋ ๊ทผ์ฒ ๋ง์ง ์ง๋(--- ์ ๊ณต)') | |
# ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ | |
df = pd.read_excel('data_traffic_accidents.xlsx', index_col=0) | |
st.write('๋ค์ ๋ฐ์ดํฐ๋ ์ ๊ตญ์ ๊ตํต์ฌ๊ณ ๋ฅผ ์ง์ญ๋ณ๋ก ์ง๊ณํ ๊ฒ์ด๋ค') | |
#st.write(df) | |
# ๊ฒ์์ด ์ ๋ ฅ ๋ฐ์ ๋ฐ์ดํฐ ์ ํ์ ์ผ๋ก ์ถ๋ ฅ | |
query = st.text_input('์ด ๊ณณ์ ์ง์ญ๋ช (์๊ตฐ๊ตฌ๋์๋ฉด)์ ์ ๋ ฅํ๋ฉด ๊ด๋ จ ๋ฐ์ดํฐ๋ง ๊ฒ์ํด ๋ณด์ฌ์ค๋๋ค', key='region1_input') | |
df['select1']=df['์ฌ๊ณ ์ง์ญ์์น๋ช '].apply(lambda x: 1 if query in x else 0) | |
st.write('๊ฒ์ ๊ฒฐ๊ณผ:', df[df['select1']==1]) | |
# ๊ตํต์ฌ๊ณ ์ ํ๊ณผ ์ฐ๋์ ๋ฐ๋ฅธ pivot table ๋ณด์ฌ์ฃผ๊ธฐ | |
df_pivot=df.pivot_table(index='์ฌ๊ณ ์ ํ๊ตฌ๋ถ', columns='์ฌ๊ณ ์ฐ๋', values='์ฌ๊ณ ๊ฑด์', aggfunc='sum') | |
df_heatmap=df_pivot.style.background_gradient(cmap='Oranges').format("{:.2f}") | |
st.write('๋ค์ ํ๋ ๊ตํต์ฌ๊ณ ๊ฑด์๋ฅผ ์ ํ๊ณผ ์ฐ๋์ ๋ฐ๋ผ ๊ตฌ๋ถํ ๊ฒ์ด๋ค', df_heatmap) | |
# ์๋ํด๋ผ์ฐ๋ ๋ณด์ฌ์ฃผ๊ธฐ | |
st.write('์ฃผ์ ๋จ์ด๋ค์ ์๋ํด๋ผ์ฐ๋๋ก ๋ณด์ฌ์ฃผ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค') | |
st.image('wordcloud.png') | |
# ์ฐ๊ฒฐ๋ง๊ทธ๋ฆผ ๋ณด์ฌ์ฃผ๊ธฐ | |
st.write('''์ทจ์ฌํ์ ์ฃผ์ ๋จ์ด๋ค ๊ฐ์ ๊ณต๋์ถํํ๋ ๊ด๊ณ๋ฅผ ๋ฐํ์ผ๋ก ์๋ฏธ์ฐ๊ฒฐ๋ง์ ๊ทธ๋ ค๋ณด์๋ค. | |
๋ถ์๊ฒฐ๊ณผ, ~~์ค๋ช ~~''') | |
st.image('network.png') | |
# ๊ทธ๋ํ html ๋ณด์ฌ์ฃผ๊ธฐ | |
st.write('''์ทจ์ฌํ์ ๊ตํต์ฌ๊ณ ์ฌ๊ณ ๊ฑด์์ ์ฌ๋ง์์ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ทธ๋ํ๋ก ํ์ํ๋ค ๋ถ์๊ฒฐ๊ณผ, ~~์ค๋ช ~~ | |
๊ทธ๋ํ ๊ฐ ์ ์ ๋ง์ฐ์ค๋ฅผ ๋์ผ๋ฉด ์ง์ญ ์ ๋ณด๊ฐ ๋ํ๋๋ค''') | |
with open('bokeh_example.html', 'r', encoding='utf-8') as f: | |
html_content1 = f.read() | |
st.components.v1.html(html_content1, height=500) # markdown๋ณด๋ค ๋ณต์กํ html ํ์ผ ์๋์ ๊ฐํจ | |
# ์ง๋ html ๋ณด์ฌ์ฃผ๊ธฐ | |
st.write('''์ทจ์ฌํ์ ์์ธ์ ์ฃผ์ ๋ํ์ ์์น์ ์ ๋ณด๋ฅผ ์ง๋์ ํ๊ธฐํด ๋ณด์๋ค. ๋ถ์๊ฒฐ๊ณผ, ~~์ค๋ช ~~ | |
์ง๋ ์ ํ๊ธฐ ์ง์ ์ ๋ง์ฐ์ค๋ฅผ ๋์ผ๋ฉด ๊ด๋ จ ์ ๋ณด๊ฐ ๋ํ๋๋ค''') | |
with open('folium_example.html', 'r', encoding='utf-8') as f: | |
html_content2 = f.read() | |
st.components.v1.html(html_content2, height=500) |