Spaces:
Sleeping
Sleeping
Create app.py
Browse files
app.py
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
import pandas as pd
|
| 3 |
+
import altair as alt
|
| 4 |
+
from PIL import Image
|
| 5 |
+
import os
|
| 6 |
+
|
| 7 |
+
# Streamlit ์ฑ ์ค์
|
| 8 |
+
st.title('์ฐ๋ น/์ฑ๋ณ์ ๋ฐ๋ฅธ ์์ธก ๋์ถ ๊ฑด์')
|
| 9 |
+
|
| 10 |
+
# ์ด๋ฏธ์ง ๊ฒฝ๋ก ์ค์
|
| 11 |
+
image_paths = [
|
| 12 |
+
r'C:\Users\user\Desktop\๋์๊ด_๊ณต๋ชจ์ \์ต์ข
\12_๋ค๋์ถ๊ทธ๋ฃน\๋์ถ๊ฑด์ ์์ธก\book_analysis_plots-์ด๋ฏธ์ง-0.jpg',
|
| 13 |
+
r'C:\Users\user\Desktop\๋์๊ด_๊ณต๋ชจ์ \์ต์ข
\12_๋ค๋์ถ๊ทธ๋ฃน\๋์ถ๊ฑด์ ์์ธก\book_analysis_plots-์ด๋ฏธ์ง-1.jpg'
|
| 14 |
+
]
|
| 15 |
+
|
| 16 |
+
# ๋ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ Streamlit์ ํ์
|
| 17 |
+
for image_path in image_paths:
|
| 18 |
+
if os.path.exists(image_path):
|
| 19 |
+
image = Image.open(image_path)
|
| 20 |
+
st.image(image, caption=os.path.basename(image_path))
|
| 21 |
+
else:
|
| 22 |
+
st.error(f"์ด๋ฏธ์ง ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค: {image_path}")
|
| 23 |
+
|
| 24 |
+
# Excel ํ์ผ ๊ฒฝ๋ก ์ค์
|
| 25 |
+
excel_path = r'C:\Users\user\Desktop\๋์๊ด_๊ณต๋ชจ์ \์ต์ข
\12_๋ค๋์ถ๊ทธ๋ฃน\๋์ถ๊ฑด์ ์์ธก\book_analysis_summary.xlsx'
|
| 26 |
+
|
| 27 |
+
# Excel ๋ฐ์ดํฐ ๋ก๋
|
| 28 |
+
if os.path.exists(excel_path):
|
| 29 |
+
df = pd.read_excel(excel_path)
|
| 30 |
+
|
| 31 |
+
# '์ฐ๋ น_์ฑ๋ณ' ์ด์์ ์ ๋ํฌํ ์นดํ
๊ณ ๋ฆฌ ์ถ์ถ
|
| 32 |
+
categories = df['์ฐ๋ น_์ฑ๋ณ'].unique()
|
| 33 |
+
selected_category = st.selectbox('์นดํ
๊ณ ๋ฆฌ ์ ํ', categories)
|
| 34 |
+
|
| 35 |
+
# ์ ํํ ์นดํ
๊ณ ๋ฆฌ์ ํด๋นํ๋ ๋ฐ์ดํฐ ํํฐ๋ง
|
| 36 |
+
selected_data = df[df['์ฐ๋ น_์ฑ๋ณ'] == selected_category]
|
| 37 |
+
|
| 38 |
+
# ํ์ํ ์ด๋ง ์ถ์ถ (์์ธก ๋์ถ๊ฑด์, ์ค์ ๋์ถ๊ฑด์)
|
| 39 |
+
filtered_data = selected_data[['์์ธก ๋์ถ๊ฑด์', '์ค์ ๋์ถ๊ฑด์']]
|
| 40 |
+
|
| 41 |
+
# ํํฐ๋ง๋ ๋ฐ์ดํฐ ํ์
|
| 42 |
+
st.write(f"์ ํํ ์นดํ
๊ณ ๋ฆฌ: {selected_category}")
|
| 43 |
+
st.write(filtered_data)
|
| 44 |
+
|
| 45 |
+
# ๋ฐ์ดํฐ๋ฅผ ์ธ๋ก ๋ง๋ ๊ทธ๋ํ๋ก ์๊ฐํ
|
| 46 |
+
chart_data = filtered_data.reset_index().melt('index', var_name='Type', value_name='Count')
|
| 47 |
+
|
| 48 |
+
bar_chart = alt.Chart(chart_data).mark_bar().encode(
|
| 49 |
+
x=alt.X('Type:N', title=None),
|
| 50 |
+
y=alt.Y('Count:Q', title='๋์ถ๊ฑด์'),
|
| 51 |
+
color='Type:N'
|
| 52 |
+
).properties(
|
| 53 |
+
width=600,
|
| 54 |
+
height=400
|
| 55 |
+
)
|
| 56 |
+
|
| 57 |
+
st.altair_chart(bar_chart, use_container_width=True)
|
| 58 |
+
else:
|
| 59 |
+
st.error("Excel ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค.")
|