import streamlit as st import pandas as pd import folium from streamlit_folium import folium_static def main(): st.title("Place Recommender System") st.write("Please enter your trip information below:") # use columns to display the inputs and map/recommendations side by side col1, col2 = st.columns(2) with col1: destination = st.text_input("Destination") category = st.selectbox("Category",('Beach', 'Market', 'Park', 'Tourist place', 'Temple', 'Museum', 'Cafe')) st.write(f"Destination: {destination}") st.write(f"Category: {category}") # load recommendations data recommendations = pd.read_csv('recommendations.csv') # filter recommendations based on user input filtered_recommendations = recommendations[(recommendations['Destination'] == destination) & (recommendations['Category'] == category)] # display recommendations on map map_center = filtered_recommendations[['Latitude', 'Longitude']].mean().values.tolist() my_map = folium.Map(location=map_center, zoom_start=12, tiles='OpenStreetMap') for _, row in filtered_recommendations.iterrows(): folium.Marker([row['Latitude'], row['Longitude']], popup=row['Name'], tooltip=row['Name']).add_to(my_map) with col2: st.write("Here are some recommendations on a map:") folium_static(my_map) # display recommendations in a list st.write("Here are some recommendations:") table = filtered_recommendations[['Name','Description','Reviews','Google Rating(out of 5)']] table_html = table.to_html(index=False, escape=False) st.write(table_html, unsafe_allow_html=True) if __name__ == "__main__": main()