Spaces:
Runtime error
Runtime error
File size: 7,111 Bytes
81aa782 |
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import pandas_bokeh
import seaborn as sns
from pytrends.request import TrendReq
import time
import random
# ๊ธ ์ฐ๊ธฐ(๋งํฌ ์ฝ์
)
st.title('VIETNAM DONGDAEMUN FOOOOOOOOOD!!!!!!!!!')
st.header('Selection of Vietnamese Restaurants in Dongdaemun Area')
st.subheader('Variety of dishes from different region in Vietnam, made affordable and delicious for local taste')
st.subheader('Items such as Pho Soup, Bun Bo Hue, Cha Gio or Com Chien')
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)
.''' )
# ์ฌ์ง ์ฝ์
st.image('final_image_2.jpg', caption='A Spread of Vietnamese Dishes You Might Be Able To Find')
st.image('final_image_4.jpg', caption='A popular choice everywhere: Vietnamese Pho Soup')
st.image('final_image_3.jpg', caption='Hidden Gem: Banh Xeo')
st.header('Cheap and Delicious: One can find a variety of Vietnamese Restaurant in Dongdaemun Area')
st.subheader('Hosting dishes from North to South Vietnam')
st.subheader('The almost infinite choices will leave you looking for reviews!')
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''' )
# ๋ฐ์ดํฐ ๋ณด์ฌ์ฃผ๊ธฐ
df_๋๋๋ฌธ๊ตฌ_๋ฒ ํธ๋จ_๋ง์ง = pd.read_excel('vietnam_food_dongdaemun_BLOGS.xlsx', index_col=0)
st.write('We have narrowed down to 150 most relevant blogs!!',df_๋๋๋ฌธ๊ตฌ_๋ฒ ํธ๋จ_๋ง์ง)
df_๋๋๋ฌธ๊ตฌ_๋ฒ ํธ๋จ_๋ง์ง_keyword = pd.read_excel('vietnam_food_KEYWORDS.xlsx', index_col=0)
st.write('๋ธ๋ก๊ทธ ๊ธ์์ ๊ฐ์ฅ ๋ง์ด ์ถํํ ๋จ์ด๋ ~~~ ์ค๋ช
~~~', df_๋๋๋ฌธ๊ตฌ_๋ฒ ํธ๋จ_๋ง์ง_keyword)
# ์๋ํด๋ผ์ฐ๋ - WORDCLOUD
st.write('์ฃผ์ ๋จ์ด๋ค์ ์๋ํด๋ผ์ฐ๋๋ก ๋ณด์ฌ์ฃผ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค')
st.image('final_WORDCLOUD.png')
# ์ฐ๊ฒฐ๋ง ๋ถ์ - NETWORK
st.write('''์ทจ์ฌํ์ ์ฃผ์ ๋จ์ด๋ค ๊ฐ์ ๊ณต๋์ถํํ๋ ๊ด๊ณ๋ฅผ ๋ฐํ์ผ๋ก ์๋ฏธ์ฐ๊ฒฐ๋ง์ ๊ทธ๋ ค๋ณด์๋ค.
๋ถ์๊ฒฐ๊ณผ, ~~์ค๋ช
~~''')
st.image('final_NETWORK.png')
#### The Section Below Is Extra Stuff We Gotta Think About
#
df_๋๋๋ฌธ๊ตฌ_๋ฒ ํธ๋จ_๋ง์ง_2 = pd.read_excel('vietnam_food_dongdaemun_BLOGS.xlsx', index_col=0)
st.write('Again, the list of blog posts on Dongdaemun Vietnamese Restaurant', df_๋๋๋ฌธ๊ตฌ_๋ฒ ํธ๋จ_๋ง์ง_2)
# ๊ฒ์์ด ์
๋ ฅ ๋ฐ์ ์ถ๋ ฅ
query = st.text_input('Enter Keyword such as: food name, restaurant name', key='region1_input')
df_๋๋๋ฌธ๊ตฌ_๋ฒ ํธ๋จ_๋ง์ง_2['select1']=df_๋๋๋ฌธ๊ตฌ_๋ฒ ํธ๋จ_๋ง์ง_2['text'].apply(lambda x: 1 if query in x else 0)
st.write('๊ฒ์ ๊ฒฐ๊ณผ:', df_๋๋๋ฌธ๊ตฌ_๋ฒ ํธ๋จ_๋ง์ง_2[df_๋๋๋ฌธ๊ตฌ_๋ฒ ํธ๋จ_๋ง์ง_2['select1']==1])
##### HEATMAP #####
# List of user-agents to rotate
USER_AGENTS = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Firefox/91.0',
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0'
]
def fetch_trends_data(kw_list, timeframe, geo):
pytrends = TrendReq(hl='en-US', tz=360)
pytrends.build_payload(kw_list, timeframe=timeframe, geo=geo)
df_trends = pytrends.interest_over_time()
# Introduce random delays to avoid being blocked
time.sleep(random.uniform(1, 5))
# Rotate user-agents
user_agent = random.choice(USER_AGENTS)
pytrends = TrendReq(hl='en-US', tz=360, custom_useragent=user_agent)
pytrends.build_payload(kw_list, timeframe=timeframe, geo=geo)
df_trends = pytrends.interest_over_time()
return df_trends
# Fetch data for the year 2023
kw_list = ['๋ฒ ํธ๋จ ์์']
timeframe = '2023-01-01 2023-12-31'
geo = 'KR'
df_trends = fetch_trends_data(kw_list, timeframe, geo)
# Streamlit app
st.title('Monthly Google Trends Data for Vietnamese Food in Seoul (2023)')
if not df_trends.empty:
df_trends = df_trends.drop(columns=['isPartial'])
df_trends.reset_index(inplace=True)
# Extract month from date
df_trends['month'] = df_trends['date'].dt.to_period('M')
monthly_counts = df_trends.groupby('month')[kw_list].sum().reset_index()
# Display the data
st.write('Number of searches for each month:')
st.write(monthly_counts)
# Create the heatmap
plt.figure(figsize=(10, 6))
monthly_counts_pivot = monthly_counts.pivot_table(index='month', values=kw_list)
sns.heatmap(monthly_counts_pivot.T, annot=True, fmt="d", cmap='YlGnBu', cbar=False)
st.pyplot(plt)
else:
st.write("No data received from Google Trends.")
# ๊ตํต์ฌ๊ณ ์ ํ๊ณผ ์ฐ๋์ ๋ฐ๋ฅธ 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)
# ๊ฒ์์ด ์
๋ ฅ ๋ฐ์ pivot table ์ถ๋ ฅ
#query_pivot = st.text_input('์ด ๊ณณ์ ์ง์ญ๋ช
(์๊ตฐ๊ตฌ)์ ์
๋ ฅํ๋ฉด ๊ด๋ จ ๋ฐ์ดํฐ๋ง ๊ฒ์ํด ๋ณด์ฌ์ค๋๋ค', key='region2_input')
#df_๊ตํต์ฌ๊ณ ['select2']=df_๊ตํต์ฌ๊ณ ['์ฌ๊ณ ์ง์ญ์์น๋ช
'].apply(lambda x: 1 if query_pivot in x else 0)
#df_๊ตํต์ฌ๊ณ _pivot_selected=df_๊ตํต์ฌ๊ณ [df_๊ตํต์ฌ๊ณ ['select2']==1].pivot_table(index='์ฌ๊ณ ์ ํ๊ตฌ๋ถ', columns='์ฌ๊ณ ์ฐ๋', values='์ฌ๊ณ ๊ฑด์', aggfunc='sum')
#df_๊ตํต์ฌ๊ณ _heatmap_selected=df_๊ตํต์ฌ๊ณ _pivot_selected.style.background_gradient(cmap='Oranges').format("{:.2f}")
#st.write('๊ฒ์ ๊ฒฐ๊ณผ:', df_๊ตํต์ฌ๊ณ _heatmap_selected)
# pandas_bokeh ๊ทธ๋ํ ๋ณด์ฌ์ฃผ๊ธฐ
#st.write('์ ๊ตญ ๊ตํต์ฌ๊ณ ๋ฐ์ดํฐ์ ๋ฐ๋ฅด๋ฉด, ์ฌ๊ณ ๊ฑด์์ ์ค์์์๋ ๋ฐ์ ํ ๊ด๋ จ์ ๋งบ๊ณ ์๋ค. ~~~์ค๋ช
~~. *๊ทธ๋ํ ๋ด ์ ์ ์ปค์๋ฅผ ๋๋ฉด ์ง์ญ๋ช
์ด ๋ํ๋๋ค')
#p_scatter = df_๊ตํต์ฌ๊ณ .plot_bokeh.scatter(
# x="์ฌ๊ณ ๊ฑด์",
# y="์ค์์์",
# title="์ฌ๊ณ ๊ฑด์์ ์ค์์์",
# size=10,
# hovertool_string="""<h6>์์น:@{์ฌ๊ณ ์ง์ญ์์น๋ช
}</h6>"""
#)
#st.bokeh_chart(p_scatter, use_container_width=True)
# ์ ํํ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ถ๋ ฅ
#option = st.selectbox('์ฐ๋๋ฅผ ์ ํํ๋ฉด ํด๋น ์๊ธฐ์ ๊ทธ๋ํ๋ฅผ ๋ณด์ฌ์ค๋๋ค',
# (2012, 2013, 2014, 2015, 2016, 2018, 2017, 2019, 2020, 2021), key='year_input')
#p_scatter_selected = df_๊ตํต์ฌ๊ณ [df_๊ตํต์ฌ๊ณ ['์ฌ๊ณ ์ฐ๋']==option].plot_bokeh.scatter(
# x="์ฌ๊ณ ๊ฑด์",
# y="์ค์์์",
# title="์ฌ๊ณ ๊ฑด์์ ์ค์์์",
# size=10,
# hovertool_string="""<h6>์์น:@{์ฌ๊ณ ์ง์ญ์์น๋ช
}</h6>"""
#)
#st.write('๊ฒ์ ๊ฒฐ๊ณผ:')
#st.bokeh_chart(p_scatter_selected, use_container_width=True)
|