myquyen242 commited on
Commit
86f5e7c
โ€ข
1 Parent(s): 763392a

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +122 -0
app.py ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import matplotlib.pyplot as plt
4
+ import pandas_bokeh
5
+ import seaborn as sns
6
+
7
+ # ๊ธ€ ์“ฐ๊ธฐ(๋งํฌ ์‚ฝ์ž…)
8
+ st.title('VIETNAM DONGDAEMUN FOOOOOOOOOD!!!!!!!!!')
9
+
10
+ st.header('Selection of Vietnamese Restaurants in Dongdaemun Area')
11
+ st.subheader('Variety of dishes from different region in Vietnam, made affordable and delicious for local taste')
12
+ st.subheader('Items such as Pho Soup, Bun Bo Hue, Cha Gio or Com Chien')
13
+ st.write('''Write something here about the booming of Vietnamese Restaurant in Korea - particularly the fast growing food scene in Dongdaemun [ํ‘ธ๋“œํŠธ๋Ÿญ](https://namu.wiki/w/%EB%B2%A0%ED%8A%B8%EB%82%A8%20%EC%9A%94%EB%A6%AC)
14
+ .''' )
15
+
16
+ # ์‚ฌ์ง„ ์‚ฝ์ž…
17
+ st.image('final_image_2.jpg', caption='A Spread of Vietnamese Dishes You Might Be Able To Find')
18
+
19
+ st.image('final_image_4.jpg', caption='A popular choice everywhere: Vietnamese Pho Soup')
20
+
21
+ st.image('final_image_3.jpg', caption='Hidden Gem: Banh Xeo')
22
+
23
+
24
+ st.header('Cheap and Delicious: One can find a variety of Vietnamese Restaurant in Dongdaemun Area')
25
+ st.subheader('Hosting dishes from North to South Vietnam')
26
+ st.subheader('The almost infinite choices will leave you looking for reviews!')
27
+ st.write('''Before deciding on which dish you'd want ~ carefully browse through the Blog section for an intimate look at the local food joints''' )
28
+
29
+ # ๋ฐ์ดํ„ฐ ๋ณด์—ฌ์ฃผ๊ธฐ
30
+ df_๋™๋Œ€๋ฌธ๊ตฌ_๋ฒ ํŠธ๋‚จ_๋ง›์ง‘ = pd.read_excel('vietnam_food_dongdaemun_BLOGS.xlsx', index_col=0)
31
+ st.write('We have narrowed down to 150 most relevant blogs!!',df_๋™๋Œ€๋ฌธ๊ตฌ_๋ฒ ํŠธ๋‚จ_๋ง›์ง‘)
32
+
33
+ df_๋™๋Œ€๋ฌธ๊ตฌ_๋ฒ ํŠธ๋‚จ_๋ง›์ง‘_keyword = pd.read_excel('vietnam_food_KEYWORDS.xlsx', index_col=0)
34
+ st.write('๋ธ”๋กœ๊ทธ ๊ธ€์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์ถœํ˜„ํ•œ ๋‹จ์–ด๋Š” ~~~ ์„ค๋ช…~~~', df_๋™๋Œ€๋ฌธ๊ตฌ_๋ฒ ํŠธ๋‚จ_๋ง›์ง‘_keyword)
35
+
36
+
37
+
38
+ # ์›Œ๋“œํด๋ผ์šฐ๋“œ - WORDCLOUD
39
+ st.write('์ฃผ์š” ๋‹จ์–ด๋“ค์„ ์›Œ๋“œํด๋ผ์šฐ๋“œ๋กœ ๋ณด์—ฌ์ฃผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค')
40
+ st.image('final_WORDCLOUD.png')
41
+
42
+
43
+
44
+ # ์—ฐ๊ฒฐ๋ง ๋ถ„์„ - NETWORK
45
+ st.write('''์ทจ์žฌํŒ€์€ ์ฃผ์š” ๋‹จ์–ด๋“ค ๊ฐ„์— ๊ณต๋™์ถœํ˜„ํ•˜๋Š” ๊ด€๊ณ„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์˜๋ฏธ์—ฐ๊ฒฐ๋ง์„ ๊ทธ๋ ค๋ณด์•˜๋‹ค.
46
+ ๋ถ„์„๊ฒฐ๊ณผ, ~~์„ค๋ช…~~''')
47
+ st.image('final_NETWORK.png')
48
+
49
+ #### The Section Below Is Extra Stuff We Gotta Think About
50
+
51
+ #
52
+ df_๋™๋Œ€๋ฌธ๊ตฌ_๋ฒ ํŠธ๋‚จ_๋ง›์ง‘_2 = pd.read_excel('vietnam_food_dongdaemun_BLOGS.xlsx', index_col=0)
53
+ st.write('Again, the list of blog posts on Dongdaemun Vietnamese Restaurant', df_๋™๋Œ€๋ฌธ๊ตฌ_๋ฒ ํŠธ๋‚จ_๋ง›์ง‘_2)
54
+
55
+ # ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ ๋ฐ›์•„ ์ถœ๋ ฅ
56
+ query = st.text_input('Enter Keyword such as: food name, restaurant name', key='region1_input')
57
+ df_๋™๋Œ€๋ฌธ๊ตฌ_๋ฒ ํŠธ๋‚จ_๋ง›์ง‘_2['select1']=df_๋™๋Œ€๋ฌธ๊ตฌ_๋ฒ ํŠธ๋‚จ_๋ง›์ง‘_2['text'].apply(lambda x: 1 if query in x else 0)
58
+ st.write('๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ:', df_๋™๋Œ€๋ฌธ๊ตฌ_๋ฒ ํŠธ๋‚จ_๋ง›์ง‘_2[df_๋™๋Œ€๋ฌธ๊ตฌ_๋ฒ ํŠธ๋‚จ_๋ง›์ง‘_2['select1']==1])
59
+
60
+ ##### HEATMAP #####
61
+
62
+ # Load the data from the Excel file
63
+ file_path = 'vietnam_food_by_month.xlsx'
64
+ final_df = pd.read_excel(file_path)
65
+
66
+ # Ensure the 'month' column is present
67
+ if 'month' not in final_df.columns:
68
+ final_df['month'] = pd.to_datetime(final_df['date']).dt.month
69
+
70
+ # Count the number of blog posts per month
71
+ monthly_counts = final_df['month'].value_counts().sort_index()
72
+
73
+ # Prepare data for heatmap
74
+ heatmap_data = monthly_counts.reset_index()
75
+ heatmap_data.columns = ['Month', 'Number of Posts']
76
+ heatmap_data = heatmap_data.set_index('Month').T
77
+
78
+ # Streamlit application
79
+ st.title('Monthly Blog Posts about Vietnamese Food in Seoul (2023)')
80
+ st.write('Number of blog posts for each month:')
81
+ st.write(heatmap_data)
82
+
83
+ fig, ax = plt.subplots(figsize=(10, 6))
84
+ sns.heatmap(heatmap_data, annot=True, cmap='YlGnBu', ax=ax)
85
+ st.pyplot(fig)
86
+
87
+ # ๊ตํ†ต์‚ฌ๊ณ  ์œ ํ˜•๊ณผ ์—ฐ๋„์— ๋”ฐ๋ฅธ pivot table ๋ณด์—ฌ์ฃผ๊ธฐ
88
+ #df_๊ตํ†ต์‚ฌ๊ณ _pivot=df_๊ตํ†ต์‚ฌ๊ณ .pivot_table(index='์‚ฌ๊ณ ์œ ํ˜•๊ตฌ๋ถ„', columns='์‚ฌ๊ณ ์—ฐ๋„', values='์‚ฌ๊ณ ๊ฑด์ˆ˜', aggfunc='sum')
89
+ #df_๊ตํ†ต์‚ฌ๊ณ _heatmap=df_๊ตํ†ต์‚ฌ๊ณ _pivot.style.background_gradient(cmap='Oranges').format("{:.2f}")
90
+ #st.write('๋‹ค์Œ ํ‘œ๋Š” ๊ตํ†ต์‚ฌ๊ณ  ๊ฑด์ˆ˜๋ฅผ ์œ ํ˜•๊ณผ ์—ฐ๋„์— ๋”ฐ๋ผ ๊ตฌ๋ถ„ํ•œ ๊ฒƒ์ด๋‹ค', df_๊ตํ†ต์‚ฌ๊ณ _heatmap)
91
+
92
+ # ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ ๋ฐ›์•„ pivot table ์ถœ๋ ฅ
93
+ #query_pivot = st.text_input('์ด ๊ณณ์— ์ง€์—ญ๋ช…(์‹œ๊ตฐ๊ตฌ)์„ ์ž…๋ ฅํ•˜๋ฉด ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋งŒ ๊ฒ€์ƒ‰ํ•ด ๋ณด์—ฌ์ค๋‹ˆ๋‹ค', key='region2_input')
94
+ #df_๊ตํ†ต์‚ฌ๊ณ ['select2']=df_๊ตํ†ต์‚ฌ๊ณ ['์‚ฌ๊ณ ์ง€์—ญ์œ„์น˜๋ช…'].apply(lambda x: 1 if query_pivot in x else 0)
95
+ #df_๊ตํ†ต์‚ฌ๊ณ _pivot_selected=df_๊ตํ†ต์‚ฌ๊ณ [df_๊ตํ†ต์‚ฌ๊ณ ['select2']==1].pivot_table(index='์‚ฌ๊ณ ์œ ํ˜•๊ตฌ๋ถ„', columns='์‚ฌ๊ณ ์—ฐ๋„', values='์‚ฌ๊ณ ๊ฑด์ˆ˜', aggfunc='sum')
96
+ #df_๊ตํ†ต์‚ฌ๊ณ _heatmap_selected=df_๊ตํ†ต์‚ฌ๊ณ _pivot_selected.style.background_gradient(cmap='Oranges').format("{:.2f}")
97
+ #st.write('๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ:', df_๊ตํ†ต์‚ฌ๊ณ _heatmap_selected)
98
+
99
+ # pandas_bokeh ๊ทธ๋ž˜ํ”„ ๋ณด์—ฌ์ฃผ๊ธฐ
100
+ #st.write('์ „๊ตญ ๊ตํ†ต์‚ฌ๊ณ  ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ฅด๋ฉด, ์‚ฌ๊ณ ๊ฑด์ˆ˜์™€ ์ค‘์ƒ์ž์ˆ˜๋Š” ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์„ ๋งบ๊ณ  ์žˆ๋‹ค. ~~~์„ค๋ช…~~. *๊ทธ๋ž˜ํ”„ ๋‚ด ์ ์— ์ปค์„œ๋ฅผ ๋Œ€๋ฉด ์ง€์—ญ๋ช…์ด ๋‚˜ํƒ€๋‚œ๋‹ค')
101
+ #p_scatter = df_๊ตํ†ต์‚ฌ๊ณ .plot_bokeh.scatter(
102
+ # x="์‚ฌ๊ณ ๊ฑด์ˆ˜",
103
+ # y="์ค‘์ƒ์ž์ˆ˜",
104
+ # title="์‚ฌ๊ณ ๊ฑด์ˆ˜์™€ ์ค‘์ƒ์ž์ˆ˜",
105
+ # size=10,
106
+ # hovertool_string="""<h6>์œ„์น˜:@{์‚ฌ๊ณ ์ง€์—ญ์œ„์น˜๋ช…}</h6>"""
107
+ #)
108
+ #st.bokeh_chart(p_scatter, use_container_width=True)
109
+
110
+ # ์„ ํƒํ•œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ถœ๋ ฅ
111
+ #option = st.selectbox('์—ฐ๋„๋ฅผ ์„ ํƒํ•˜๋ฉด ํ•ด๋‹น ์‹œ๊ธฐ์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค',
112
+ # (2012, 2013, 2014, 2015, 2016, 2018, 2017, 2019, 2020, 2021), key='year_input')
113
+
114
+ #p_scatter_selected = df_๊ตํ†ต์‚ฌ๊ณ [df_๊ตํ†ต์‚ฌ๊ณ ['์‚ฌ๊ณ ์—ฐ๋„']==option].plot_bokeh.scatter(
115
+ # x="์‚ฌ๊ณ ๊ฑด์ˆ˜",
116
+ # y="์ค‘์ƒ์ž์ˆ˜",
117
+ # title="์‚ฌ๊ณ ๊ฑด์ˆ˜์™€ ์ค‘์ƒ์ž์ˆ˜",
118
+ # size=10,
119
+ # hovertool_string="""<h6>์œ„์น˜:@{์‚ฌ๊ณ ์ง€์—ญ์œ„์น˜๋ช…}</h6>"""
120
+ #)
121
+ #st.write('๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ:')
122
+ #st.bokeh_chart(p_scatter_selected, use_container_width=True)