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.write("<br><br>", unsafe_allow_html=True) # 2์ค ๋์ด์ฐ๊ธฐ | |
# ์ค์ ๋ชฉ | |
st.markdown("### ๋์๊ณต์, ๋๊ตฌ๋ฅผ ์ํ ๊ณต๊ฐ์ธ๊ฐ") | |
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ | |
# 1๋ฌธ๋จ ์ ๋ชฉ | |
st.markdown('#### "ํ๊ต ๊ทผ์ฒ ๊ณต์์ด์? ์ด๋ ์๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ด์." ') | |
#1๋ฌธ๋จ ์ฌ์ง ์ฝ์ | |
st.image('photo1.jpg', caption='5์ 19์ผ, ๋ํ์ ์๋ฏผ์(22)์จ๊ฐ ๋๋๋ฌธ๊ตฌ ์นดํ ์ธ๋ถ ๊ณต๊ฐ์์ ์ธํฐ๋ทฐํ๋ ๋ชจ์ต') | |
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ | |
# 1๋ฌธ๋จ ๋ฌธ๋จ ์์ | |
st.write('''์์ธ ๋๋๋ฌธ๊ตฌ๋ ์ฌ๋ฌ ๋ํ์ด ๋ฐ์งํด ์์ด 20๋ ์์ทจ์์ด ๋ง์ ์ง์ญ์ด๋ค. ๋์์ ์์ธ์์์ 1์ธ๋น ๊ณต์๋ฉด์ ์ด ๊ฐ์ฅ ์ข์ ์ง์ญ์ด๊ธฐ๋ ํ๋ค. | |
๋๋๋ฌธ๊ตฌ ํ๊ธฐ๋์ ์ฌ๋ ์๋ฏผ์(22ยท์ฌยท๊ฐ๋ช ) ์จ๋ ํ ๋ฌ์ ๊ณต์์ 2๋ฒ ์ ๋ ๋ฐฉ๋ฌธํ๋ค. ๊ฑฐ์ฃผ์ง 1km ์ด๋ด ๋ฐ๊ฒฝ์ ๋ง๋ ํ ๊ณต์์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.''' ) | |
st.write(''' ๋ฏผ์ ์จ๋ โ๊ฐ๋ ๊ณต์์ ์์์ ํด์์ ์ทจํ๋ฉด ์ค๋ด์์๋ ๋๋ ์ ์๋ ์ฌ์ ์ ํด๋ฐฉ๊ฐ์ ๋๋ ์ ์์ด์ ์ข๋คโ๋ผ๊ณ ๋ตํ์ง๋ง, ๊ทธ๋ ๊ฐ ์ค์ ๋ก ํฅํ๋ ๊ณณ์ ๊ณต์์ด ์๋ ์นดํ์๋ค. | |
โ์ฌ๊ธฐ์ ์ ์ผ ๊ฐ๊น์ด ๊ณต์๋ ๊ฑธ์ด์ 2~30๋ถ์ ๊ฑธ๋ฆฌ๋๊น ์์ฃผ ๊ฐ๊ธด ์ด๋ ค์์. ๊ทธ๋์ ๊ทธ๋ฅ ์นดํ ๊ฐ์ ์ ๊น ์ฌ๊ณ ์ค๋ ๊ฑฐ์ฃ .โ''' ) | |
st.write("<br><br>", unsafe_allow_html=True) # 2์ค ๋์ด์ฐ๊ธฐ | |
st.image('photo2.jpg', caption='5์ 20์ผ, ๋ํ์ ์ต์ง์ฐ(24)์จ๊ฐ ๋ฅ์ฐ ๊ณต์์์ ์ธํฐ๋ทฐํ๋ ๋ชจ์ต') | |
st.write('''์ค๋๊ตฌ ์ ๋ด๋์ ๊ฑฐ์ฃผํ๋ ์ต์ง์ฐ(24ยท์ฌยท๊ฐ๋ช ) ์จ์ ์ฌ์ ์ ์กฐ๊ธ ๋ค๋ฅด๋ค. ๊ทธ๋ ์ ์ง ์์ ์์นํ ๋ฅ์ฐ๊ณต์์ ๋๋ณด 5๋ถ ๊ฑฐ๋ฆฌ์ ์์ด ์ ๊ทผ์ฑ์ด ์ข๋ค. | |
โ๊ณต์ ๋๋ ์ ์ผ๊ฐ ์กฐ๋ช ์ด ์ค์น๋์ด ์๋ฒฝ์๋ ๋ฌด์ญ์ง ์๊ณ , ๋ค๋ฅธ ์ํํธ ๋จ์ง์์๋ ํธํ๊ฒ ๋ค์ด๊ฐ ์ ์๋ ์๊ธธ์ด ์์ด์ ์ข์์.โ''' ) | |
st.write('''๊ทธ๋ ๋ ์ง ๊ทผ์ฒ์ ์๋ ๊ณต์์ ํ ๋ฌ์ ์ฝ 15๋ฒ ๋ฐฉ๋ฌธํ์ง๋ง, ํ๊ต ์ฃผ๋ณ(๋๋๋ฌธ๊ตฌ)์๋ ๊ณต์์ด ์์ด ์์ฌ์์ ๋๋๋ค. โํ๊ต ์ฃผ๋ณ์๋ ๊ณต์์ด ์์ด์ ํด์ํ ๊ณต๊ฐ์ด ์ ๋ค๊ณ ์๊ฐํด์. | |
์ค์ ๋ก ๊ณต์์ด ์ด๋ ์๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ด์.โ''' ) | |
#2๋ฌธ๋จ ์ ๋ชฉ | |
st.markdown('#### ์ ๊ทผ์ฑ ๋จ์ด์ง๋ ๋์ ๊ณต์... ์นดํ๋ก ๋ฐ๊ฑธ์ ๋๋ฆฌ๋ ์๋ฏผ๋ค ') | |
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ | |
# 2๋ฌธ๋จ ์ฒซ ๋ฒ์งธ ์ฌ์ง ์ฝ์ | |
st.image('photo3.jpg', caption='์นดํ : 2024.01 ๊ธฐ์ค, ๊ณต์ : 2024.05 ๊ธฐ์ค') | |
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ | |
# 2๋ฌธ๋จ ๋ฌธ๋จ1 | |
st.write('''๊ณต๊ณต๋ฐ์ดํฐํฌํธ์ ๋ฐ๋ฅด๋ฉด, ์ฌํด 1์ ๊ธฐ์ค ์ ๊ตญ์ ์๋ ์นดํ๋ ์ฝ 9๋ง 6์ฒ ๊ฐ์ ๋ฌํ๋ค. ๋ฐ๋ฉด ๊ณต์ ๊ฐ์๋ ์ฝ 1๋ง 8์ฒ ๊ฐ์ ๋ถ๊ณผํ๋ค. ๊ณต์์ด ์นดํ๋ณด๋ค 5๋ฐฐ ๋๊ฒ ์ ๋ค๋ ๊ฑด, ๊ทธ๋งํผ ์ ๊ทผ์ฑ์ด ๋จ์ด์ง๋ค๋ ์๋ฏธ๋ค. | |
์ฌ๋๋ค์ ๊ณต์์ ๊ฐ๊ณ ์ถ์ด๋ ์ด์ฉ ์ ์์ด ์นดํ๋ก ๋ฐ๊ฑธ์์ ๋๋ฆฐ๋ค. ํ์ ๋ ํด์ ์๊ฐ์ ์ผ๋ถ๋ฅผ ์ด๋ ์๊ฐ์ ์์ ์ ์๋ ์ฌ๋์ ๋ง์ง ์๋ค.''' ) | |
st.write('''์นดํ ์ญ์ ๋ถ๋ช ํ ํ๊ณ๊ฐ ์กด์ฌํ๋ค. ์นดํ๊ฐ ์๋ฌด๋ฆฌ ์ ๊ทผ์ฑ์ด ์ข์๋, ๊ณต์์ด ์ ๊ณตํ๋ ์ผ์ธ ํด์ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์๋ ์๋ค. | |
์ถ๊ฐ์ ์ธ ์๊ฐ์ ๋ค์ฌ ๊ณต์์ ๊ฐ ์ ์๋ ์ฌ๋๋ค์ด โ๋์ ์ฃผ๊ณ โ ์ฌ์ผ ํ๋ ๊ณต๊ฐ์ด๋ผ๋ ์ ๋ ๋ณธ์ง์ ์ธ ๋ฌธ์ ๋ค.''') | |
st.write('''์์ธ์ ์ฌ์ค์, ํ์ฌ ๊ณต์ ๊ฐ์๊ฐ ๊ณผ๊ฑฐ์ ๋นํด ์๋นํ ๋์ด๋ ์ํ๋ผ๋ ๊ฒ์ด๋ค. ๋์๊ณต์๊ณผ ๋ น์ง ํ์ถฉ์ ์ํ โ๋์๊ณต์ ๋ฐ ๋ น์ง ๋ฑ์ ๊ดํ ๋ฒ๋ฅ โ์ด 2005๋ ์ ์ ๋ ์ดํ, | |
๊ณต์์ ์ด๊ฐ์๋ ์ด๋ฌํด๋ถํฐ ์ฆ๊ฐํ๊ธฐ ์์ํ๋ค.''') | |
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ | |
# 2๋ฌธ๋จ ๋ ๋ฒ์งธ ์ฌ์ง ์ฝ์ | |
st.image('photo4.jpg', caption='๊ธฐ๊ฐ : 2006๋ ์ ํ 18๋ ') | |
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ | |
# 2๋ฌธ๋จ ๋ฌธ๋จ2 | |
st.write('''์์ธ์ ๊ธฐ์ค์ผ๋ก, ๋ฒ๋ฅ ์ํ์ผ๋ก๋ถํฐ 18๋ ์ด ์ง๋ ํ์ฌ(2005\~2024)์ ๊ณต์ ๊ฐ์์ ๋ฒ๋ฅ ์ํ ์ ๊ณผ๊ฑฐ 18๋ (1987\~2005)์ ๊ณต์ ๊ฐ์๋ฅผ ๋น๊ตํ ๊ทธ๋ํ๋ค. | |
๋ฒ๋ฅ ์ํ ์ด์ ์ ์ง์ ๋ ๊ณต์ ๊ฐ์๋ 222๊ฐ, ์ํ ์ดํ์ ์ง์ ๋ ๊ณต์ ๊ฐ์๋ 324๊ฐ๋ค. 18๋ ์ด๋ผ๋ ๋์ผํ ๊ธฐ๊ฐ ๋์ ์์ธ์ ๊ณต์ ๊ฐ์๋ ์ฝ 31% ์ฆ๊ฐํ๋ค.''') | |
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ | |
# 3๋ฌธ๋จ ์ ๋ชฉ | |
st.markdown("#### '๋ชจ๋๋ฅผ ์ํ' ๊ณต์์ด '๋ถ์๋ค์' ๊ณต์์ผ๋ก ") | |
# html ์ฝ์ | |
# 3๋ฌธ๋จ ๋ณธ๋ฌธ | |
st.write('''์ทจ์ฌํ์ ์์ธ์ ์์น๊ตฌ๋ณ ์๋๋ถ์์ ๊ณต์ ๊ฐ์์ ์๊ด์ฑ์์ ํฅ๋ฏธ๋ก์ด ์ฌ์ค์ ๋ฐ๊ฒฌํ ์ ์์๋ค. ๋ฐ๋ก ์ง์ญ ์๋๋ถ์์ ํด๋น ์ง์ญ์ ๊ณต์ ๊ฐ์๊ฐ ๋น์ทํ ์์์ ๋ณด์ธ๋ค๋ ๊ฒ์ด๋ค. | |
๊ณต์์ด ๊ฐ์ฅ ์ ์ ๊ธ์ฒ๊ตฌ(55๊ฐ, 6๋ถ์), ๊ด์ง๊ตฌ(68๊ฐยท7๋ถ์), ์ค๊ตฌ(70๊ฐยท7๋ถ์), ๊ฐ๋ถ๊ตฌ(80๊ฐยท6๋ถ์)๋ ๋ชจ๋ ์๋๋ถ์๊ฐ ๋ฎ์ 6~7๋ถ์์ ์ํ๋ ์ง์ญ์ด์๋ค. ๋ฐ๋ฉด ์๋๋ถ์๊ฐ ๋์ ์กํ๊ตฌ(174๊ฐยท8๋ถ์), ์์ด๊ตฌ(179๊ฐยท9๋ถ์)ย ๋ฑ 8~9๋ถ์ ์ง์ญ๋ค์ ๋๋ถ๋ถ ๊ณต์ ๊ฐ์ ์์ ๊ถ์ญ์ ํฌํจ๋์๋ค. ๋์ด๋ ๊ณต์์ด ์๋๋ถ์๊ฐ ๋์ ์ง์ญ์ ์ค์ฌ์ผ๋ก ๊ณต๊ธ๋ ํ์ ํ๋ฒํ ์๋ฏผ๋ค์ ์ด๋ฅผ ์ฒด๊ฐํ๊ธฐ ์ด๋ ค์ ๋ ๊ฒ์ด๋ค. | |
์ด๋ฌํ ๋ถ๊ท ํ์ด ๋ฐ์ํ๋ ์์ธ์ ํ์ฌ ๊ณต์์ด ์กฐ์ฑ๋๋ ๊ณผ์ ์์ ์ฐพ์ ์ ์๋ค. ์ถฉ๋ถ์ ์ฑ ๊ฐ๋ฐ์ผํฐ ๋ฌธ์ง์ ์ ๋ฌธ์์์ โ๊ณต์์ 80% ์ด์์ด ๊ธฐ๋ถ์ฑ๋ฉ(๊ฐ๋ฐ์๊ฐ ์ผ์ ๋ถ๋ถ์ ๋ ์ ๊ณต๊ณต์์ค์ ์ค์นํด ๊ตญ๊ฐ๋ ์ง์์ฒด์ ๋ฌด์์ผ๋ก ์ ๊ณตํ๋ฉด ์ฉ์ ๋ฅ ์ํฅ ๋ฑ์ ํํ์ ๋ฐ๋ ์ ๋)์ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ โ๊ฐ๋ฐ์โ์ ์ ์ฅ์์ ๊ณต์์ด ์กฐ์ฑ๋๋คโ๋ผ๋ฉฐ ์ฃผ๊ฑฐ๊ณํ ์๋ฆฝ๊ณผ์ ์์๋ถํฐ ๋ฌธ์ ๊ฐ ์์์ ์ง์ ํ๋ค. ๊ณต์ ์กฐ์ฑ๊ณผ ๊ด๋ฆฌ ์ฑ ์์ด ์๋ ์ง์์ฒด๊ฐ ๋ณ๋ค๋ฅธ ์กฐ๋ก๋ ์ ์ฑ ์ ์๋ฆฝํ์ง ์์ผ๋, ๊ฐ๋ฐ์๊ฐ ์์ต์ฑ์ ๋์ด๊ธฐ ์ํด ์ํฌ๋ฆฌ ๊ณต๊ฐ์ ๊ณต์์ ์กฐ์ฑํ๊ณ ์๋ค๋ ๊ฒ์ด๋ค.''') | |
# ์ฌ์ง ์ฝ์ | |
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) |