Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 0aec3358 rédigé par Louis BRUNETEAU's avatar Louis BRUNETEAU
Parcourir les fichiers

comment

parent a7b09efe
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
%% Cell type:markdown id: tags:
# Présentation de la partie 2 de la SAE sur les graphes
Dans cette seconde partie de SAE sur les graphes, l'objectif est de pouvoir faire de la recherche de plus courts chemins, en utilisant l'algorithme de Dijkstra.
La recherche de plus courts chemins sera ensuite utilisée pour trouver les hôtels, restaurants et aire de covoiturage les plus proches d'une manifestation culturelle choisie.
La représentation choisie pour les graphes est une matrice d'adjacence, qui sera représentée par un tableau de tableau (les noms des sommets sont des entiers et seront numérotés en commençant à 0). Nous considérons que le nombre de sommets du graphe ne pourra pas être modifié une fois le graphe construit. Un tableau contenant le nom associé à chaque sommet sera également créé.
%% Cell type:markdown id: tags:
### Présentation du problème et choix d'une manifestation culturelle à étudier
L'office de tourisme de votre département propose une liste de restaurants et d'hôtels les plus proches d'une manifestation culturelle ainsi que l'aire de covoiturage la plus proche de celle-ci. Vous aurez à implémenter les fonctions permettant de créer cette liste.
Chaque binôme doit choisir la manifestation culturelle qu'il souhaite considérer et l'indiquer dans l'onglet correspondant du document partagé suivant : https://uncloud.univ-nantes.fr/index.php/s/BXwyNfYHbfKYbB8 (chaque binôme doit choisir parmi les manifestations culturelles du département assigné à son groupe).
%% Cell type:markdown id: tags:
## Installation de graphviz pour pouvoir visualiser les graphes
%% Cell type:code id: tags:
``` python
!pip install graphviz
import graphviz
graphviz.__version__, graphviz.version()
import pandas as pd
import math
```
%% Output
Defaulting to user installation because normal site-packages is not writeable
Collecting graphviz
Downloading graphviz-0.20-py3-none-any.whl (46 kB)
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.0/47.0 kB 127.4 kB/s eta 0:00:00 0:00:01
[?25hInstalling collected packages: graphviz
Successfully installed graphviz-0.20
%% Cell type:markdown id: tags:
## Création d'une fonction de conversion d'un graphe, défini par une matrice d'adjacence, vers le format graphviz
%% Cell type:code id: tags:
``` python
def creation_graphe_graphviz(g):
# création d'un graphe non orienté
dot = graphviz.Graph()
# ajout des sommets
for i in range(len(g)):
dot.node(str(i))
# ajout des arcs
for i in range(len(g)):
for j in range(i):
if g[i][j] == 1:
dot.edge(str(i), str(j))
return dot
```
%% Cell type:markdown id: tags:
## Fonctions utiles pour manipuler les graphes
%% Cell type:markdown id: tags:
#### Fonction qui construit un graphe vide (sans aretes), avec le nombre de sommets donné, et qui retourne la matrice d'adjacence correspondante
%% Cell type:code id: tags:
``` python
def graphe_vide(n):
g = []
for i in range(n):
l = []
for j in range(n):
l.append(0)
g.append(l)
return g
```
%% Cell type:markdown id: tags:
#### Fonction qui retourne vrai si l'arete, dont les numéros de sommets extrémités sont donnés, existe
%% Cell type:code id: tags:
``` python
def est_arete(g, i, j):
return g[i][j]
```
%% Cell type:markdown id: tags:
#### Fonction qui calcule les successeurs d'un sommet
%% Cell type:code id: tags:
``` python
def successeurs(g, i):
return g[i]
```
%% Cell type:markdown id: tags:
#### Fonction qui importe un graphe contenu dans un fichier, au format dot
%% Cell type:code id: tags:
``` python
def importe_graphe(fich):
# à compléter
s = graphviz.Source.from_file(fich)
s.view()
```
%% Cell type:markdown id: tags:
#### Fonction qui exporte un graphe dans un fichier, au format dot
%% Cell type:code id: tags:
``` python
def exporte_graphe(fich, graphe, noms_sommets):
# à compléter
return True
```
%% Cell type:markdown id: tags:
## Calcul de plus courts chemins avec l'algorithme de Dijkstra
%% Cell type:markdown id: tags:
#### Fonction qui implémente l'algorithme de Dijkstra pour le calcul de plus courts chemins, à partir d'un sommet de départ s, et qui retourne le tableau des distances du sommet s aux autres sommets ainsi que le tableau des sommets prédécesseurs sur les plus courts chemins
%% Cell type:code id: tags:
``` python
def algo_dijkstra(s, graphe):
pred = [s for i in range(len(graphe))]
distance = [float('inf') for _ in graphe]
distance[s] = 0
non_visites = [i for i in range(len(graphe))]
while non_visites:
liste = [distance[i] for i in range(len(non_visites))]
index = liste.index(min(liste))
point = non_visites.pop(index)
for i, v in enumerate(graphe[point]):
if v <= 0 or v == float('inf') or i not in non_visites:
continue
if distance[point] + v < distance[i]:
distance[i] = distance[point] + v
pred[i] = point
return distance, pred
```
%% Cell type:code id: tags:
``` python
g1 = [
[0, 2, 1, 3, 0],
[2, 0, 6, 4 ,7],
[1, 6, 0, 3, 3],
[3, 4, 3, 0, 9],
[0, 7, 3, 9, 0]
]
algo_dijkstra(2, g1)
```
%% Output
([1, 3, 0, 3, 3], [2, 0, 2, 2, 2])
%% Cell type:markdown id: tags:
## Création de graphes de distances entre points
%% Cell type:markdown id: tags:
#### Installation de geopy pour calculer des distances à partir de coordonnées gps
%% Cell type:code id: tags:
``` python
!pip install geopy
#import geopy
from geopy.distance import *
```
%% Output
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: geopy in /Users/lwi/Library/Python/3.10/lib/python/site-packages (2.2.0)
Requirement already satisfied: geographiclib<2,>=1.49 in /Users/lwi/Library/Python/3.10/lib/python/site-packages (from geopy) (1.52)
%% Cell type:code id: tags:
``` python
FETE_DU_PAIN = ('FÊTE DU PAIN 2022', 48.183, -0.894)
```
%% Cell type:markdown id: tags:
#### Fonction qui crée un graphe de distance entre un sommet de départ, dont le nom et les coordonnées gps sont données (latitude et longitude), et des sommets contenus dans un fichier csv, pour un département choisi
%% Cell type:code id: tags:
``` python
def cree_graphe_distances(nom_sommet, lat_sommet, long_sommet, fich_csv, dpt):
csv = pd.read_csv(fich_csv, sep=";")
csv = csv[csv['Code Insee de la Commune'] // 1000 == dpt]
liste_lat = [lat_sommet] + list(csv['Latitude'])
liste_long = [long_sommet] + list(csv['Longitude'])
noms_sommets = [nom_sommet] + list(csv['Nom de la fête ou manifestation'])
graphe = [[float('inf') for _ in liste_lat] for i in liste_lat]
for i in range(len(liste_lat)):
for j in range(len(liste_long)):
dist = geodesic((liste_lat[i], liste_long[i]), (liste_lat[j], liste_long[j])).km
graphe[i][j] = dist
graphe[j][i] = dist
return graphe, noms_sommets
```
%% Cell type:code id: tags:
``` python
def cree_df_distance(lat_sommet, long_sommet, fich_csv, dpt, insee='Code Insee de la Commune', lat='Latitude', long='Longitude') -> pd.DataFrame:
'''Retourne la dataframe du fichier csv en argument, seulement les lignes dans le bon département, avec une colonne supplémentaire "distance"
qui indique la distance au point en argument.
'''
fun_dist = lambda x, y : [geodesic((lat_sommet, long_sommet), (i, j)) for i, j in zip(x, y)]
csv = pd.read_csv(fich_csv, sep=";")
csv = csv[csv[insee] // 1000 == dpt]
csv["distance"] = fun_dist(csv[lat], csv[long])
return csv
```
%% Cell type:code id: tags:
``` python
df = cree_df_distance(*FETE_DU_PAIN[1:], '../TestData/NotebookDataCsv/234400034_070-002_offre-touristique-fetes_et_manifestations-rpdl.csv', 53)
df
```
%% Cell type:markdown id: tags:
## Calcul de plus courts chemins, en utilisant l'algorithme de Dijkstra implémenté
Vous donnerez le nom et l'adresse des lieux à lister.
%% Cell type:markdown id: tags:
#### Quelle est l'aire de covoiturage la plus proche de la manifestation culturelle choisie ?
%% Cell type:code id: tags:
``` python
def aire_proche_manif():
chemin = "../TestData/NotebookDataCsv/234400034_base_des_lieux_de_co_voiturage.csv"
df = cree_df_distance(*FETE_DU_PAIN[1:], chemin, 53, 'insee', 'Ylat', 'Xlong')
return df[df.distance == min(df.distance)]
```
%% Cell type:code id: tags:
``` python
aire_proche_manif()
```
%% Output
id_lieu id_local nom_lieu ad_lieu \
70 53243-C-003 NaN Aire de covoiturage Croix du bouquet D31
677 53243-C-001 NaN Aire de covoiturage Croix du bouquet D31
com_lieu insee type date_maj ouvert \
70 ST OUEN DES TOITS 53243 Aire de covoiturage 2022-01-24 True
677 ST OUEN DES TOITS 53243 Aire de covoiturage 2022-01-24 True
source ... nbre_pmr duree horaires proprio lumiere \
70 200083392.0 ... 1.0 NaN NaN Departement 53 False
677 200083392.0 ... 1.0 NaN NaN Departement 53 False
comm localisation libelle_region code_region \
70 NaN 48.149252,-0.870507 Pays de la Loire 52
677 NaN 48.149252,-0.870507 Pays de la Loire 52
distance
70 4.139516113133418 km
677 4.139516113133418 km
[2 rows x 23 columns]
%% Cell type:markdown id: tags:
#### Quel est l'hôtel le plus proche de la manifestation culturelle choisie ?
%% Cell type:code id: tags:
``` python
def hotel_plus_proche():
chemin = '../TestData/NotebookDataCsv/234400034_070-006_offre-touristique-hotels-rpdl.csv'
df = cree_df_distance(*FETE_DU_PAIN[1:], chemin, 53)
return df[df.distance == min(df.distance)]
```
%% Cell type:code id: tags:
``` python
hotel_plus_proche()
```
%% Output
Nom de l'offre touristique Catégorie de l'offre Type de l'offre \
207 HOTEL AU PIGEON BLANC Non classé Hôtel - Restaurant
Adresse1 Adresse partie 1 suite Adresse partie 2 Adresse partie 3 \
207 NaN NaN 1 RUE DE LA POSTE NaN
Code postal Nom de la commune Cedex de l'adresse postale ... \
207 53240 ANDOUILLE NaN ...
Ouvert toute l'année: oui / non Horaires d'ouvertures \
207 oui NaN
Moyen(s) de réservation directe \
207 ||02 43 02 31 40||aupigeonblanc@orange.fr
Moyen(s) de réservation en ligne Centrale de réservation en ligne? Tarifs \
207 NaN NaN NaN
Modes de paiement acceptés localisation \
207 Cartes bancaires;Chèques bancaires et postaux 48.176745,-0.782998
departement distance
207 Mayenne 8.283976134001248 km
[1 rows x 50 columns]
%% Cell type:markdown id: tags:
#### Quels sont les 10 hôtels les plus proches de la manifestation culturelle choisie ?
%% Cell type:code id: tags:
``` python
def dix_hotels_plus_proches():
chemin = '../TestData/NotebookDataCsv/234400034_070-006_offre-touristique-hotels-rpdl.csv'
df = cree_df_distance(*FETE_DU_PAIN[1:], chemin, 53)
return df.sort_values('distance').head(10)
```
%% Cell type:code id: tags:
``` python
dix_hotels_plus_proches()
```
%% Output
Nom de l'offre touristique Catégorie de l'offre Type de l'offre \
207 HOTEL AU PIGEON BLANC Non classé Hôtel - Restaurant
382 LE BRILLET-PONTIN HOTEL 2 étoiles Hôtel - Restaurant
346 HÔTEL DES VOYAGEURS 1 étoile Hôtel - Restaurant
511 L'INTERNATIONAL Non classé Hôtel
167 HÔTEL LE CORBUSSON Non classé Hôtel
485 HOTEL LE GRAND CERF 3 étoiles Hôtel - Restaurant
193 HOTEL CAMPANILE LAVAL OUEST 3 étoiles Hôtel - Restaurant
45 FASTHÔTEL 2 étoiles Hôtel
367 PREMIÈRE CLASSE 2 étoiles Hôtel
381 HÔTEL CAMPANILE LAVAL NORD 3 étoiles Hôtel
Adresse1 Adresse partie 1 suite \
207 NaN NaN
382 23 rue des forges NaN
346 NaN NaN
511 Route Départementale 57 NaN
167 Lieu-dit le Corbusson NaN
485 NaN NaN
193 Route de Fougères NaN
45 Rue du Docteur Paul Mer NaN
367 NaN NaN
381 Parc CERES NaN
Adresse partie 2 Adresse partie 3 Code postal \
207 1 RUE DE LA POSTE NaN 53240
382 NaN NaN 53410
346 1 rue Charles de Gaulle NaN 53810
511 NaN NaN 53940
167 NaN NaN 53940
485 17-19, rue Aristide Briand NaN 53500
193 9 rue Charles Toutain NaN 53000
45 NaN NaN 53000
367 Boulevard Bertrand du Guesclin NaN 53000
381 21 rue Ferdinand Buisson NaN 53810
Nom de la commune Cedex de l'adresse postale ... \
207 ANDOUILLE NaN ...
382 PORT-BRILLET NaN ...
346 CHANGE NaN ...
511 SAINT-BERTHEVIN NaN ...
167 SAINT-BERTHEVIN NaN ...
485 ERNEE NaN ...
193 LAVAL NaN ...
45 LAVAL NaN ...
367 LAVAL NaN ...
381 CHANGE NaN ...
Ouvert toute l'année: oui / non Horaires d'ouvertures \
207 oui NaN
382 oui NaN
346 oui NaN
511 oui NaN
167 oui NaN
485 oui NaN
193 oui NaN
45 oui NaN
367 oui NaN
381 oui NaN
Moyen(s) de réservation directe \
207 ||02 43 02 31 40||aupigeonblanc@orange.fr
382 Malin||02 43 01 28 00||contact@lebrilletpontin.fr
346 NaN
511 NaN
167 NaN
485 HUARD||02 43 05 13 09||infos@legrandcerf.net
193 NaN
45 NaN
367 NaN
381 NaN
Moyen(s) de réservation en ligne \
207 NaN
382 Booking||https://www.booking.com/hotel/fr/le-b...
346 NaN
511 NaN
167 NaN
485 NaN
193 Booking||||||||
45 NaN
367 NaN
381 NaN
Centrale de réservation en ligne? \
207 NaN
382 oui
346 NaN
511 NaN
167 NaN
485 NaN
193 non
45 NaN
367 NaN
381 NaN
Tarifs \
207 NaN
382 Demi-pension||74,00||74,00||• Soirée étape, pr...
346 NaN
511 NaN
167 NaN
485 NaN
193 NaN
45 NaN
367 NaN
381 NaN
Modes de paiement acceptés localisation \
207 Cartes bancaires;Chèques bancaires et postaux 48.176745,-0.782998
382 Cartes bancaires;Chèques bancaires et postaux;... 48.1127903,-0.9728849
346 NaN 48.09921,-0.7904154
511 NaN 48.0721285,-0.8932883
167 Cartes bancaires;Chèques Vacances;Espèces 48.072933,-0.8533926
485 Cartes bancaires;Chèques bancaires et postaux 48.2957212,-0.9297055
193 Cartes bancaires 48.0837409,-0.8024438
45 NaN 48.0788749,-0.797273
367 Cartes bancaires 48.0751545,-0.7956329
381 NaN 48.0934915,-0.7602453
departement distance
207 Mayenne 8.283976134001248 km
382 Mayenne 9.767459946137134 km
346 Mayenne 12.092626848522947 km
511 Mayenne 12.328226744048001 km
167 Mayenne 12.606439833784329 km
485 Mayenne 12.811558114079313 km
193 Mayenne 12.97129865258807 km
45 Mayenne 13.634123144256053 km
367 Mayenne 14.05049149327329 km
381 Mayenne 14.076734556749186 km
[10 rows x 50 columns]
%% Cell type:markdown id: tags:
#### Quels sont les 10 hôtels 3 étoiles les plus proches de la manifestation culturelle choisie ?
%% Cell type:code id: tags:
``` python
def dix_hotels_3_etoiles_plus_proches():
chemin = '../TestData/NotebookDataCsv/234400034_070-006_offre-touristique-hotels-rpdl.csv'
df = cree_df_distance(*FETE_DU_PAIN[1:], chemin, 53)
return df[df['Catégorie de l\'offre'] == '3 étoiles'].sort_values('distance').head(10)
```
%% Cell type:code id: tags:
``` python
dix_hotels_3_etoiles_plus_proches()
```
%% Output
Nom de l'offre touristique Catégorie de l'offre \
485 HOTEL LE GRAND CERF 3 étoiles
193 HOTEL CAMPANILE LAVAL OUEST 3 étoiles
381 HÔTEL CAMPANILE LAVAL NORD 3 étoiles
228 IBIS LAVAL LE RELAIS D’ARMOR 3 étoiles
227 HÔTEL DU MAINE 3 étoiles
8 BEST WESTERN HÔTEL DE PARIS LAVAL 3 étoiles
236 IBIS STYLES LAVAL CENTRE GARE 3 étoiles
59 HOTEL LE PETIT PERIER 3 étoiles
339 HOTEL*** RESTAURANT LA MARJOLAINE 3 étoiles
125 HOTEL*** RESTAURANT BEAU RIVAGE 3 étoiles
Type de l'offre Adresse1 Adresse partie 1 suite \
485 Hôtel - Restaurant NaN NaN
193 Hôtel - Restaurant Route de Fougères NaN
381 Hôtel Parc CERES NaN
228 Hôtel - Restaurant Z.I. des Touches NaN
227 Hôtel 98 Avenue Robert Buron NaN
8 Hôtel NaN NaN
236 Hôtel 8 avenue Robert Buron NaN
59 Hôtel - Restaurant NaN NaN
339 Hôtel - Restaurant NaN NaN
125 Hôtel - Restaurant NaN NaN
Adresse partie 2 Adresse partie 3 \
485 17-19, rue Aristide Briand NaN
193 9 rue Charles Toutain NaN
381 21 rue Ferdinand Buisson NaN
228 Boulevard de Buffon NaN
227 NaN NaN
8 22, rue de la Paix NaN
236 NaN NaN
59 4 PLACE DU GAST NaN
339 NaN Domaine du Bas Mont
125 Route de St-Baudelle- 23 chemin Beau Rivage NaN
Code postal Nom de la commune Cedex de l'adresse postale ... \
485 53500 ERNEE NaN ...
193 53000 LAVAL NaN ...
381 53810 CHANGE NaN ...
228 53810 CHANGE NaN ...
227 53000 LAVAL NaN ...
8 53000 LAVAL NaN ...
236 53000 LAVAL NaN ...
59 53000 LAVAL NaN ...
339 53100 MOULAY NaN ...
125 53100 MOULAY NaN ...
Ouvert toute l'année: oui / non Horaires d'ouvertures \
485 oui NaN
193 oui NaN
381 oui NaN
228 oui NaN
227 oui NaN
8 oui NaN
236 oui NaN
59 oui NaN
339 oui NaN
125 oui NaN
Moyen(s) de réservation directe \
485 HUARD||02 43 05 13 09||infos@legrandcerf.net
193 NaN
381 NaN
228 NaN
227 NaN
8 NaN
236 Réception||02 43 67 19 25||hb0l9@accor.com
59 NaN
339 La Marjolaine||02 43 00 48 42||lamarjolaine@wa...
125 COUGE||02 43 00 49 13||fbeaurivage@9online.fr
Moyen(s) de réservation en ligne \
485 NaN
193 Booking||||||||
381 NaN
228 NaN
227 NaN
8 NaN
236 NaN
59 NaN
339 ||http://reservation-hotel.logishotels.com/res...
125 NaN
Centrale de réservation en ligne? \
485 NaN
193 non
381 NaN
228 NaN
227 NaN
8 NaN
236 NaN
59 NaN
339 oui
125 NaN
Tarifs \
485 NaN
193 NaN
381 NaN
228 NaN
227 NaN
8 NaN
236 NaN
59 Chambre single||85,00||||;Chambre double||95,0...
339 Chambre double||79,00||125,00||;Demi-pension||...
125 NaN
Modes de paiement acceptés localisation \
485 Cartes bancaires;Chèques bancaires et postaux 48.2957212,-0.9297055
193 Cartes bancaires 48.0837409,-0.8024438
381 NaN 48.0934915,-0.7602453
228 NaN 48.088868,-0.747402
227 NaN 48.0754616,-0.7612759
8 Cartes bancaires;Chèques Vacances;Espèces 48.070932,-0.767981
236 Cartes bancaires;Chèques Vacances;Espèces 48.0715178,-0.7648216
59 Cartes bancaires;Chèques Vacances;Espèces;Tick... 48.0654886,-0.7738029
339 Cartes bancaires;Chèques bancaires et postaux;... 48.2680051,-0.6432073
125 Cartes bancaires;Chèques bancaires et postaux;... 48.2817785,-0.6264873
departement distance
485 Mayenne 12.811558114079313 km
193 Mayenne 12.97129865258807 km
381 Mayenne 14.076734556749186 km
228 Mayenne 15.11976972080487 km
227 Mayenne 15.51104465747706 km
8 Mayenne 15.597612145027467 km
236 Mayenne 15.68863896420451 km
59 Mayenne 15.83670384594006 km
339 Mayenne 20.894016229192054 km
125 Mayenne 22.706657363694266 km
[10 rows x 50 columns]
%% Cell type:markdown id: tags:
#### Quel est l'hôtel 4 étoile le plus proche de la manifestation culturelle choisie ?
%% Cell type:code id: tags:
``` python
def hotel_4_etoiles_plus_proche():
chemin = '../TestData/NotebookDataCsv/234400034_070-006_offre-touristique-hotels-rpdl.csv'
df = cree_df_distance(*FETE_DU_PAIN[1:], chemin, 53)
return df[df['Catégorie de l\'offre'] == '4 étoiles'].sort_values('distance').head(1)
```
%% Cell type:code id: tags:
``` python
hotel_4_etoiles_plus_proche()
```
%% Output
Nom de l'offre touristique Catégorie de l'offre Type de l'offre \
70 PERIER DU BIGNON 4 étoiles Hôtel - Restaurant
Adresse1 Adresse partie 1 suite Adresse partie 2 Adresse partie 3 \
70 NaN NaN 7 rue du Marchis NaN
Code postal Nom de la commune Cedex de l'adresse postale ... \
70 53000 LAVAL NaN ...
Ouvert toute l'année: oui / non Horaires d'ouvertures \
70 oui NaN
Moyen(s) de réservation directe Moyen(s) de réservation en ligne \
70 NaN NaN
Centrale de réservation en ligne? \
70 NaN
Tarifs \
70 Chambre double||145,00||190,00||;;• Chambre st...
Modes de paiement acceptés localisation \
70 Cartes bancaires;Chèques Vacances;Espèces;Tick... 48.0657577,-0.7743727
departement distance
70 Mayenne 15.78804551115763 km
[1 rows x 50 columns]
%% Cell type:markdown id: tags:
#### Quel est le restaurant le plus proche de la manifestation culturelle choisie ?
%% Cell type:code id: tags:
``` python
def restaurant_plus_proche():
chemin = '../TestData/NotebookDataCsv/234400034_070-008_offre-touristique-restaurants-rpdl.csv'
df = cree_df_distance(*FETE_DU_PAIN[1:], chemin, 53, lat='latitude', long="longitude")
return df.sort_values('distance').head(1)
```
%% Cell type:code id: tags:
``` python
restaurant_plus_proche()
```
%% Output
Nom de l'offre touristique Type de restaurant Catégorie du restaurant \
742 RESTAURANT LE BACONNÉRIEN Restaurant Cuisine traditionnelle
Adresse1 Adresse2 Adresse3 Code postal Cedex Bureau distributeur \
742 NaN Le Bourg NaN 53240.0 NaN NaN
Commune ... Ouvert toute l'année: oui / non \
742 LA BACONNIERE ... oui
Horaires d'ouvertures \
742 ||||||||07:00||20:00||||||07:00||20:00||||||07...
Moyen(s) de réservation directe Centrale de réservation en ligne? \
742 ||02 43 02 71 96|| NaN
Moyen(s) de réservation en ligne Tarifs Mode(s) de paiement accepté(s) \
742 NaN NaN NaN
localisation Département distance
742 48.1833677,-0.8940431 Mayenne 0.04101141304437589 km
[1 rows x 50 columns]
%% Cell type:markdown id: tags:
#### Quels sont les 10 restaurants les plus proches de la manifestation culturelle choisie ?
%% Cell type:code id: tags:
``` python
def dix_restaurants_plus_proches():
chemin = '../TestData/NotebookDataCsv/234400034_070-008_offre-touristique-restaurants-rpdl.csv'
df = cree_df_distance(*FETE_DU_PAIN[1:], chemin, 53, lat='latitude', long="longitude")
return df.sort_values('distance').head(10)
```
%% Cell type:code id: tags:
``` python
dix_restaurants_plus_proches()
```
%% Output
Nom de l'offre touristique Type de restaurant \
742 RESTAURANT LE BACONNÉRIEN Restaurant
2601 CREPERIE LA JAMELINIERE Restaurant
453 CRÊPERIE DES FORGES Restaurant
2839 RESTAURANT DES VOYAGEURS Restaurant
351 RESTAURANT TRAITEUR LA CENTAURÉE Restaurant
3037 L'ANDOL Restaurant
1553 RESTAURANT AU PIGEON BLANC Hôtel restaurant
657 RESTAURANT LE SALVERT Restaurant
1440 LE BRILLET PONTIN Hôtel restaurant
1353 L'ALEXAIN Restaurant
Catégorie du restaurant Adresse1 \
742 Cuisine traditionnelle NaN
2601 Crêperie NaN
453 Crêperie NaN
2839 Restaurant gastronomique - cuisine raffinée NaN
351 Cuisine traditionnelle NaN
3037 Brasserie 5 rue du Maine
1553 Cuisine traditionnelle NaN
657 Restaurant gastronomique - cuisine raffinée 2 LE SALVERT
1440 Cuisine traditionnelle 23 rue des Forges
1353 Cuisine traditionnelle NaN
Adresse2 Adresse3 Code postal Cedex \
742 Le Bourg NaN 53240.0 NaN
2601 NaN LA JAMELINIERE 53420.0 NaN
453 6 Rue de Saint - Germain NaN 53420.0 NaN
2839 7, rue de Saint-Hilaire NaN 53420.0 NaN
351 13, rue d'Andouillé NaN 53240.0 NaN
3037 NaN NaN 53240.0 NaN
1553 1 RUE DE LA POSTE NaN 53240.0 NaN
657 NaN NaN 53940.0 NaN
1440 NaN NaN 53410.0 NaN
1353 6 Rue du Stade NaN 53240.0 NaN
Bureau distributeur Commune ... \
742 NaN LA BACONNIERE ...
2601 NaN CHAILLAND ...
453 NaN CHAILLAND ...
2839 NaN CHAILLAND ...
351 NaN SAINT-GERMAIN-LE-GUILLAUME ...
3037 NaN ANDOUILLE ...
1553 NaN ANDOUILLE ...
657 NaN LE GENEST-SAINT-ISLE ...
1440 NaN PORT-BRILLET ...
1353 NaN ALEXAIN ...
Ouvert toute l'année: oui / non \
742 oui
2601 oui
453 NaN
2839 NaN
351 NaN
3037 NaN
1553 NaN
657 oui
1440 oui
1353 oui
Horaires d'ouvertures \
742 ||||||||07:00||20:00||||||07:00||20:00||||||07...
2601 ||||ouvert 3 jours par semaine midi et soir le...
453 NaN
2839 ||||||Fermé mardi soir, dimanche soir et mercr...
351 ||||Ouvert du lundi au vendredi midi. Le week ...
3037 ||||||Mercredi toute la journée et dimanche so...
1553 NaN
657 01/10/2021||30/04/2022||||||||||||||12:00||14:...
1440 NaN
1353 09/11/2020||31/01/2022||||||||||||||||||||||||...
Moyen(s) de réservation directe \
742 ||02 43 02 71 96||
2601 Isabelle BAHIER||02 43 02 65 57||isabellebahie...
453 ||02 43 26 70 89||contact@creperiedesforges.fr
2839 CHAUVOIS||02 43 02 70 12||snc.hoteldesvoyageur...
351 ||02 43 26 23 30||la-centauree@orange.fr
3037 MALARD||02 43 90 07 64||landol@orange.fr
1553 ||02 43 02 31 40||aupigeonblanc@orange.fr
657 NaN
1440 NaN
1353 NaN
Centrale de réservation en ligne? \
742 NaN
2601 NaN
453 NaN
2839 NaN
351 NaN
3037 NaN
1553 NaN
657 NaN
1440 oui
1353 NaN
Moyen(s) de réservation en ligne Tarifs \
742 NaN NaN
2601 NaN NaN
453 NaN NaN
2839 NaN NaN
351 NaN NaN
3037 NaN NaN
1553 NaN NaN
657 NaN NaN
1440 Booking||https://www.booking.com/hotel/fr/le-b... NaN
1353 NaN NaN
Mode(s) de paiement accepté(s) \
742 NaN
2601 Cartes bancaires;Chèques bancaires et postaux;...
453 Cartes bancaires;Chèques bancaires et postaux;...
2839 Cartes bancaires;Chèques bancaires et postaux;...
351 Cartes bancaires;Chèques bancaires et postaux;...
3037 Cartes bancaires;Chèques bancaires et postaux
1553 NaN
657 Cartes bancaires;Chèques bancaires et postaux;...
1440 Cartes bancaires;Chèques bancaires et postaux;...
1353 Cartes bancaires;Espèces;Tickets Restaurant
localisation Département distance
742 48.1833677,-0.8940431 Mayenne 0.04101141304437589 km
2601 48.219126,-0.871589 Mayenne 4.348747021188213 km
453 48.223353,-0.872233 Mayenne 4.7698255040213935 km
2839 48.2243542,-0.8735853 Mayenne 4.842259414565075 km
351 48.2059837,-0.8244756 Mayenne 5.766051425437639 km
3037 48.1767708,-0.7841706 Mayenne 8.196841284527363 km
1553 48.1769453,-0.7834272 Mayenne 8.250308296279515 km
657 48.0999125,-0.8909682 Mayenne 9.241509265806398 km
1440 48.1127903,-0.9728849 Mayenne 9.767459946137134 km
1353 48.229214,-0.768084 Mayenne 10.67699074158695 km
[10 rows x 50 columns]
%% Cell type:markdown id: tags:
#### Quels sont les 10 restaurants de cuisine traditionelle les plus proches de la manifestation culturelle choisie ?
%% Cell type:code id: tags:
``` python
def dix_restaurants_trad_plus_proches():
chemin = '../TestData/NotebookDataCsv/234400034_070-008_offre-touristique-restaurants-rpdl.csv'
df = cree_df_distance(*FETE_DU_PAIN[1:], chemin, 53, lat='latitude', long="longitude")
return df[df['Catégorie du restaurant'] == 'Cuisine traditionnelle'].sort_values('distance').head(10)
```
%% Cell type:code id: tags:
``` python
dix_restaurants_trad_plus_proches()
```
%% Output
Nom de l'offre touristique Type de restaurant \
742 RESTAURANT LE BACONNÉRIEN Restaurant
351 RESTAURANT TRAITEUR LA CENTAURÉE Restaurant
1553 RESTAURANT AU PIGEON BLANC Hôtel restaurant
1440 LE BRILLET PONTIN Hôtel restaurant
1353 L'ALEXAIN Restaurant
1398 LA GUINGUETTE Restaurant
1357 L'ART DE LA VIANDE NaN
223 LES VOYAGEURS Hôtel restaurant
2220 L'ÉPERON DU VERGER Restaurant
2844 RESTAURANT IBIS Hôtel restaurant
Catégorie du restaurant Adresse1 \
742 Cuisine traditionnelle NaN
351 Cuisine traditionnelle NaN
1553 Cuisine traditionnelle NaN
1440 Cuisine traditionnelle 23 rue des Forges
1353 Cuisine traditionnelle NaN
1398 Cuisine traditionnelle Ecluse de la Fourmondière
1357 Cuisine traditionnelle NaN
223 Cuisine traditionnelle 1 rue Charles de Gaulle
2220 Cuisine traditionnelle NaN
2844 Cuisine traditionnelle Boulevard de Buffon
Adresse2 Adresse3 Code postal Cedex \
742 Le Bourg NaN 53240.0 NaN
351 13, rue d'Andouillé NaN 53240.0 NaN
1553 1 RUE DE LA POSTE NaN 53240.0 NaN
1440 NaN NaN 53410.0 NaN
1353 6 Rue du Stade NaN 53240.0 NaN
1398 NaN NaN 53240.0 NaN
1357 11 Rue Charles de Gaulle NaN 53810.0 NaN
223 NaN NaN 53810.0 NaN
2220 15 Rue Charles de Gaulle NaN 53810.0 NaN
2844 Z.I. des Touches NaN 53810.0 NaN
Bureau distributeur Commune ... \
742 NaN LA BACONNIERE ...
351 NaN SAINT-GERMAIN-LE-GUILLAUME ...
1553 NaN ANDOUILLE ...
1440 NaN PORT-BRILLET ...
1353 NaN ALEXAIN ...
1398 NaN MONTFLOURS ...
1357 NaN CHANGE ...
223 NaN CHANGE ...
2220 NaN CHANGE ...
2844 NaN CHANGE ...
Ouvert toute l'année: oui / non \
742 oui
351 NaN
1553 NaN
1440 oui
1353 oui
1398 oui
1357 NaN
223 oui
2220 NaN
2844 oui
Horaires d'ouvertures \
742 ||||||||07:00||20:00||||||07:00||20:00||||||07...
351 ||||Ouvert du lundi au vendredi midi. Le week ...
1553 NaN
1440 NaN
1353 09/11/2020||31/01/2022||||||||||||||||||||||||...
1398 NaN
1357 NaN
223 ||||||(pas de service au restaurant le vendred...
2220 NaN
2844 NaN
Moyen(s) de réservation directe \
742 ||02 43 02 71 96||
351 ||02 43 26 23 30||la-centauree@orange.fr
1553 ||02 43 02 31 40||aupigeonblanc@orange.fr
1440 NaN
1353 NaN
1398 NaN
1357 NaN
223 NaN
2220 NaN
2844 NaN
Centrale de réservation en ligne? \
742 NaN
351 NaN
1553 NaN
1440 oui
1353 NaN
1398 NaN
1357 NaN
223 NaN
2220 NaN
2844 NaN
Moyen(s) de réservation en ligne Tarifs \
742 NaN NaN
351 NaN NaN
1553 NaN NaN
1440 Booking||https://www.booking.com/hotel/fr/le-b... NaN
1353 NaN NaN
1398 NaN NaN
1357 NaN NaN
223 NaN NaN
2220 NaN NaN
2844 NaN NaN
Mode(s) de paiement accepté(s) \
742 NaN
351 Cartes bancaires;Chèques bancaires et postaux;...
1553 NaN
1440 Cartes bancaires;Chèques bancaires et postaux;...
1353 Cartes bancaires;Espèces;Tickets Restaurant
1398 Cartes bancaires;Chèques bancaires et postaux;...
1357 NaN
223 NaN
2220 NaN
2844 NaN
localisation Département distance
742 48.1833677,-0.8940431 Mayenne 0.04101141304437589 km
351 48.2059837,-0.8244756 Mayenne 5.766051425437639 km
1553 48.1769453,-0.7834272 Mayenne 8.250308296279515 km
1440 48.1127903,-0.9728849 Mayenne 9.767459946137134 km
1353 48.229214,-0.768084 Mayenne 10.67699074158695 km
1398 48.174218,-0.746653 Mayenne 11.001236480015528 km
1357 48.0983205,-0.7925566 Mayenne 12.068715863388668 km
223 48.09921,-0.7904154 Mayenne 12.092626848522947 km
2220 48.0993,-0.78924 Mayenne 12.140900951718528 km
2844 48.098688,-0.788908 Mayenne 12.208987125798089 km
[10 rows x 50 columns]
%% Cell type:markdown id: tags:
#### Quelle est la crêperie la plus proche de la manifestation culturelle choisie ?
%% Cell type:code id: tags:
``` python
def dix_creperies_plus_proches():
chemin = '../TestData/NotebookDataCsv/234400034_070-008_offre-touristique-restaurants-rpdl.csv'
df = cree_df_distance(*FETE_DU_PAIN[1:], chemin, 53, lat='latitude', long="longitude")
return df[df['Catégorie du restaurant'] == 'Crêperie'].sort_values('distance').head(1)
```
%% Cell type:code id: tags:
``` python
dix_creperies_plus_proches()
```
%% Output
Nom de l'offre touristique Type de restaurant Catégorie du restaurant \
2601 CREPERIE LA JAMELINIERE Restaurant Crêperie
Adresse1 Adresse2 Adresse3 Code postal Cedex Bureau distributeur \
2601 NaN NaN LA JAMELINIERE 53420.0 NaN NaN
Commune ... Ouvert toute l'année: oui / non \
2601 CHAILLAND ... oui
Horaires d'ouvertures \
2601 ||||ouvert 3 jours par semaine midi et soir le...
Moyen(s) de réservation directe \
2601 Isabelle BAHIER||02 43 02 65 57||isabellebahie...
Centrale de réservation en ligne? Moyen(s) de réservation en ligne \
2601 NaN NaN
Tarifs Mode(s) de paiement accepté(s) \
2601 NaN Cartes bancaires;Chèques bancaires et postaux;...
localisation Département distance
2601 48.219126,-0.871589 Mayenne 4.348747021188213 km
[1 rows x 50 columns]
%% Cell type:code id: tags:
``` python
```
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter