Spaces:
Sleeping
Sleeping
File size: 2,183 Bytes
ebcd1da |
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 |
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib.font_manager as fm
import streamlit as st
# ํฐํธ ํ์ผ ๊ฒฝ๋ก ์ค์
font_path = r"H2GTRM.TTF"
font_prop = fm.FontProperties(fname=font_path, size=12)
plt.rcParams['font.family'] = font_prop.get_name()
plt.rcParams['axes.unicode_minus'] = False # ๋ง์ด๋์ค ๊ธฐํธ ๊นจ์ง ๋ฐฉ์ง
# ๋ฐ์ดํฐ ๋ก๋
file_path = r'book_analysis_final.xlsx'
df = pd.read_excel(file_path, sheet_name=2)
# ์ฐ๋ น๋ ๋ฌธ์์ด ์ฒ๋ฆฌ
df['์ฐ๋ น๋'] = df['์ฐ๋ น'].astype(str)
# ์ฅ๋ฅด๋ณ ๋์ถ ๊ฑด์ ์ง๊ณ
genre_age_sex = df.groupby(['์ฐ๋ น๋', '์ฑ๋ณ', '์ฃผ์ ๋ถ๋ฅ๋ช
'])['๋์ถ๊ฑด์'].sum().unstack().fillna(0)
# ์์ 3๊ฐ์ ์ฃผ์ ๋ถ๋ฅ๋ช
์ถ์ถ
top_genres = df.groupby(['์ฐ๋ น๋', '์ฑ๋ณ', '์ฃผ์ ๋ถ๋ฅ๋ช
'])['๋์ถ๊ฑด์'].sum().reset_index()
top_genres = top_genres.sort_values(by=['์ฐ๋ น๋', '์ฑ๋ณ', '๋์ถ๊ฑด์'], ascending=[True, True, False])
# ๊ฐ ์ฐ๋ น๋์ ์ฑ๋ณ๋ณ๋ก ์์ 3๊ฐ์ ์ฃผ์ ๋ถ๋ฅ๋ช
์ ์ถ์ถ
top_3_genres = top_genres.groupby(['์ฐ๋ น๋', '์ฑ๋ณ']).head(3).reset_index(drop=True)
# Streamlit ์ ํ๋ฆฌ์ผ์ด์
์ค์
st.title('์ฐ๋ น/์ฑ๋ณ์ ๋ฐ๋ฅธ ์์ ์ฅ๋ฅด')
# ์ ํ ๋ฐ์ค ์์ฑ
selected_age_group = st.selectbox('์ฐ๋ น๋๋ฅผ ์ ํํ์ธ์:', df['์ฐ๋ น๋'].unique())
selected_gender = st.selectbox('์ฑ๋ณ์ ์ ํํ์ธ์:', df['์ฑ๋ณ'].unique())
# ์ ํ๋ ์นดํ
๊ณ ๋ฆฌ์ ํด๋นํ๋ ๋ฐ์ดํฐ ํํฐ๋ง
filtered_data = top_3_genres[(top_3_genres['์ฐ๋ น๋'] == selected_age_group) & (top_3_genres['์ฑ๋ณ'] == selected_gender)]
# ์์ 3๊ฐ์ ์ฃผ์ ๋ถ๋ฅ๋ช
์๊ฐํ
if not filtered_data.empty:
st.subheader(f'{selected_age_group} - {selected_gender}์ ์์ 3 ์ฅ๋ฅด')
plt.figure(figsize=(10, 6))
sns.barplot(data=filtered_data, x='์ฃผ์ ๋ถ๋ฅ๋ช
', y='๋์ถ๊ฑด์', palette='viridis')
plt.title(f'{selected_age_group} - {selected_gender}์ ์์ 3 ์ฅ๋ฅด')
plt.xlabel('์ฃผ์ ๋ถ๋ฅ๋ช
')
plt.ylabel('๋์ถ๊ฑด์')
plt.xticks(rotation=45)
plt.tight_layout()
st.pyplot(plt)
else:
st.write('์ ํ๋ ์ฐ๋ น๋์ ์ฑ๋ณ์ ๋ํ ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค.')
|