Spaces:
Running
Running
File size: 4,308 Bytes
a760182 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
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) |