DUT en Statistique et Informatique Décisionnelle, Université de la Côte d'Azur

Cours de Bases de données avancées 2018/19

Enseignant: prof. Malchiodi (Università degli Studi di Milano)

TP: introduction à python

  1. Installer Anaconda: télécharger "Anaconda for Windows Installer" (Python 3.7 version), lancer le programme et mantenir toutes les options prédefinies. Quand l’installation est terminé, il n'est pas nécéssaire installer Microsoft VSCode comme proposé.
  2. Ouvrir le "start menu" de windows et selectionner "Anaconda (64-bit)" (ne pas selectionner "Anaconda navigator", chercher plutôt sur "All programs"). Dans cet repertoire selectionner "Anaconda prompt". Dans la fênetre à invite de commande de Windows qui s’ouvre, lancer "conda" et vérifier que le manuel d’usage soit affiché. Après, lancer "python" et vérifier que l’environnement d’execution de python démarre. Sorter en executant "exit()".
  3. Dans la fênetre à invite de commande lancer "conda install -c anaconda mysql-connector-python" pour installer le module qui nous permettra d'accéder à une base de données MySQL.
  4. Toujours dans la fênetre à invite de commande, lancer "jupyter notebook": un navigateur Web va automatiquement s'ouvrir. Appuyer sur le bouton "New" et sélectionner "Python 3". Un nouveau notebook va s'ouvrir.
  5. Créez deux listes, chacune avec les données des héros suivants:
    • Wonder Woman; Diana Prince; Themyscira; DC Comics; 183.13; 74.74; F; 1941; Blue; Black; 100; high
    • Wolverine; Logan; Alberta, Canada; Marvel Comics; 160.70; 135.21; M; ; Blue; Black; 35; good
    Notez que dans un cas l'année de première publication n'est pas disponible. Comment peut-on gérer cette situation?
  6. Résolvez le problème au point précédent en utilisant un dictionnaire pour chaque héro. Qu'est-ce qui change pour la géstion des valeurs manquantes?
  7. Créez une liste imbriquée qui contient les deux listes qui corréspondent à Wonder Woman et à Wolverine. Accédez à cette liste afin d'afficher la force de Wonder Woman.
  8. Est-ce que il est possible de résoudre le point précédent en utilisant des dictionnaires? Pensez soit à un dictionnaire imbriqué, soit à une liste de dictionnaires.
  9. Triez la liste imbriqué que vous avez créée par nom d'héro. Essayez aussi à trier par autres critères, soit par ordre croissant, soit décroissant.
  10. Téléchargez le suivant fichier CSV contenant la description de plusieurs héros. Lisez son contenu et créez une liste imbriquée avec tous les héros, en exécutant le code suivant:
    import csv
    with open('heroes.csv', 'r') as heroes_file:
      heroes_reader = csv.reader(heroes_file, delimiter=';', quotechar='"')
      heroes = list(heroes_reader)[1:]
  11. Créez une fonction qui accepte une liste avec les données d'un héro et retourne un dictionnaire qui pour chaque héro a son nom en tant que clé et la liste elle-même comme valeur. Appliquez cette fonction à la liste imbriquée des héros.
  12. Utilisez le dictionnaire obtenu au point précédent pour répérer les 4 fantastiques (Mister Fantastic, Invisible Woman, Human Torch, Thing) et créez un ensemble qui contient leurs identités.
  13. Chaque héro est maintenant décrit par une liste de chaines de caractères. Créez une fonction qui transforme cette liste en une nouvelle liste qui contient seulement le nom de l'héro, son gender et son année de publication (ce dernier en tant que nombre entier). Comme l'année peut être une valeur manquante, eliminez préalablement tous les héros qui ne l'ont pas. Utilisez cette fonction pour créer une nouvelle liste d'héros.
  14. En exploitant une comprehénsion de liste, selectionnez tous les héros qui ont un année de publication plus récent de 2000.
  15. Toujours en utilisant une comprehénsion, selectionnez tous les héroïnes qui ont un année de publication plus récent de 2000. Essayez de répondre soit en modifiant la liste crée au point précédent, soit la liste originaire.
  16. Comptez combien d'héros aux yeux bleus ont un niveau haut (high) d'intelligence. Répondez à cette question soit en utilisant une boucle for, soit avec une comprehénsion.
  17. Triez la liste des héros par nom et utilisez une boucle while pour trouver le dernier héro (ou héroïne) dans cet ordre dont le nom commence par M.
  18. Répondez au point précédent en utilisant une comprehénsion.
  19. Expérimentez avec pandas: créez un dataframe de héros, accédez à ses lignes et à ses colonnes, générez des diagrammes, effectuez des filtres.
  20. Certaines des questions aux points précédents peuvent aussi être résolus en utilisant pandas. Vérifiez lesquels.