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)