From 4ddc8c59aa2dd6f3aeeb2d2e3c553db28812aa43 Mon Sep 17 00:00:00 2001
From: Adrienucl <adrien.payen@student.uclouvain.be>
Date: Wed, 29 Nov 2023 23:27:58 +0100
Subject: [PATCH] ajout du travail de groupe

---
 projet_en_groupe/algorithme_netflix | 304 ++++++++++++++++++++++++++++
 1 file changed, 304 insertions(+)
 create mode 100644 projet_en_groupe/algorithme_netflix

diff --git a/projet_en_groupe/algorithme_netflix b/projet_en_groupe/algorithme_netflix
new file mode 100644
index 0000000..be3b2f3
--- /dev/null
+++ b/projet_en_groupe/algorithme_netflix
@@ -0,0 +1,304 @@
+# afficher le premier document
+import pandas as pd
+
+file_path_1 = "/content/drive/MyDrive/Coding_project_2023/netflix_titles-2.csv"
+
+
+data_1 = pd.read_csv(file_path_1)
+
+#display(data_1)
+
+from google.colab import drive
+drive.mount('/content/drive')
+
+# afficher le second document
+import pandas as pd
+
+file_path_2 = "/content/drive/MyDrive/Coding_project_2023/ratings.csv"
+
+data_2 = pd.read_csv(file_path_2)
+
+#display(data_2)
+
+import pandas as pd
+
+file_path_1 = "/content/drive/MyDrive/Coding_project_2023/netflix_titles-2.csv"
+data_1 = pd.read_csv(file_path_1)
+
+file_path_2 = "/content/drive/MyDrive/Coding_project_2023/ratings.csv"
+data_2 = pd.read_csv(file_path_2)
+
+
+# faire une fonction d'enregistrement
+
+
+
+# Montrer le catalogue
+def catalogue(data_1) :
+  display(data_1)
+
+  return # attention il faut demander à chaque fois, s'il désire enregistrer la liste sur un .csv
+
+
+
+def film(data_1):
+
+    films = data_1[data_1['type'] == 'Movie'] # Filtrer les données pour inclure uniquement les films
+    titre_des_films = films['title'].tolist() # Extraire les titres des films
+
+    display(titre_des_films) # Afficher les titres des films
+
+    return # attention il faut demander à chaque fois, s'il désire enregistrer la liste sur un .csv
+
+
+
+def series(data_1) :
+
+    series = data_1[data_1['type'] == 'TV Show'] # Filtrer les données pour inclure uniquement les series
+    titre_des_series = series['title'].tolist() # Extraire les titres des series
+
+    display(titre_des_series) # Afficher les titres des series
+
+    return # attention il faut demander à chaque fois, s'il désire enregistrer la liste sur un .csv
+
+
+def year(data_1) : # attention et ou !!!!!
+  type_de_tri = input("Voulez-vous trier les années par ordre croissant ou décroissant ? (croissant/decroissant)")
+  if type_de_tri == "croissant" :
+    donnee_triee = data_1.sort_values(by='release_year',ascending=True)
+  elif type_de_tri == "decroissant" :
+    donnee_triee = data_1.sort_values(by='release_year',ascending=False)
+  else :
+      print("Choix invalide. L'ensemble n'a pu être trié! ")
+  display(donnee_triee)
+
+  return # attention il faut demander à chaque fois, s'il désire enregistrer la liste sur un .csv
+
+
+def pays(data_1) :
+    liste_pays = []
+    for countries in data_1['country'].dropna().str.split(', '):
+        for country in countries:
+            if country not in liste_pays and country != '': # il faut aussi retrier les éléments vides.
+                liste_pays.append(country)
+
+    print("Liste de tous les pays disponibles :")
+    liste_pays.sort()
+    display(liste_pays)
+
+    country_input = input("Entrez le nom du pays pour afficher les films et/ou séries : ").capitalize()
+    country_data = data_1[data_1['country'].str.lower().str.contains(country_input.lower(), case=False, na=False)]
+
+
+    if not country_data.empty:
+        display(country_data)
+    else:
+        print(f"Aucun film ou série trouvé pour le pays {country_input}.")
+
+
+    return # attention il faut demander à chaque fois, s'il désire enregistrer la liste sur un .csv
+
+
+def typ(data_1) :
+  liste_genres = []
+  for genres in data_1['listed_in'].dropna().str.split(', ') :
+    for genre in genres :
+      if genre not in liste_genres and genre != '' :
+        liste_genres.append(genre)
+
+  print("Liste de tous les genres possibles :")
+  liste_genres.sort()
+  display(liste_genres)
+
+  type_input = input("Entrez le type (romantic, action, drama, etc.) pour afficher les films et/ou séries : ").capitalize()
+  type_data = data_1[data_1['listed_in'].str.lower().str.contains(type_input.lower(), case=False, na=False)]
+
+
+  if not type_data.empty:
+        display(type_data)
+  else:
+    print(f"Aucun film ou série trouvé pour le type {type_input}.")
+
+
+def duree(data_1) :
+  liste_genres = []
+  for genres in data_1['listed_in'].dropna().str.split(', ') :
+    for genre in genres :
+      if genre not in liste_genres and genre != '' :
+        liste_genres.append(genre)
+
+  print("Liste de tous les genres possibles :")
+  liste_genres.sort()
+  display(liste_genres)
+
+  type_input = input("Entrez le type (romantic, action, drama, etc.) pour afficher les films et/ou séries : ").capitalize()
+  type_data = data_1[data_1['listed_in'].str.lower().str.contains(type_input.lower(), case=False, na=False)]
+
+  if not type_data.empty:
+
+        type_data_sorted = type_data.sort_values(by='duration', ascending=True) # voir si on fait en croissant ou décroissant
+
+        display(type_data_sorted)
+  else:
+    print(f"Aucun film ou série trouvé pour le type {type_input}.")
+
+
+
+def real(data_1) :
+  liste_dirs = []
+  for dirs in data_1['director'].dropna().str.split(', ') :
+    for dir in dirs :
+        if dir not in liste_dirs and dir != '' :
+            liste_dirs.append(dir)
+
+  print("Liste de tous les directeurs possibles : ")
+
+  director_input = input("Entrez le nom du réalisateur pour afficher les films et/ou séries : ")
+  director_data = data_1[data_1['director'].str.lower().str.contains(director_input.lower(), case=False, na=False)]
+
+  if not director_data.empty :
+
+      director_data_sorted = director_data.sort_values(by='release_year', ascending=True )  # voir si on fait en croissant ou décroissant
+
+      display(director_data)
+  else :
+   print(f"Aucune personne trouvée à ce nom {director_input}.")
+
+
+def acteur(data_1) :
+  liste_actors = []
+  for actors in data_1['cast'].dropna().str.split(', ') :
+    for actor in actors :
+      if actor not in liste_actors and actor != '' :
+          liste_actors.append(actor)
+
+  print("Liste de tous les acteurs possibles : ")
+
+  actor_input = input("Entrez le nom de l'acteur pour afficher les films et/ou séries : ")
+  actor_data =  data_1[data_1['cast'].str.lower().str.contains(actor_input.lower(), case=False, na=False)]
+
+  if not actor_data.empty :
+      actor_data_sorted = actor_data.sort_values(by ='release_year', ascending=True)
+
+      display(actor_data_sorted)
+  else :
+     print(f"Aucune acteur trouvé à ce nom {actor_input}.")
+
+
+
+def genre(data_1) : # attention, je pense que l'algorithme n'est pas correct
+
+
+   director_input = input("Entrez le nom du réalisateur pour afficher les films et/ou séries : ")
+
+   type_input = input("Entrez le type (romantic, action, drama, etc.) : ").capitalize()
+
+   director_type_data = data_1[(data_1['director'].str.lower().str.contains(director_input.lower(), case=False, na=False)) &
+                              (data_1['listed_in'].str.lower().str.contains(type_input.lower(), case=False, na=False))] # permet de lister les directeurs en fonction du type fait
+
+
+   if not director_type_data.empty:
+        # Display the count
+        count = len(director_type_data)
+        print(f"Le réalisateur {director_input} a réalisé {count} film(s) ou série(s) du type {type_input}.")
+   else:
+        print(f"Aucun film ou série trouvé pour le réalisateur {director_input} et le type {type_input}.")
+
+
+
+def  code(data_1) :
+
+  liste_codes = []
+  for codes in data_1['rating'].dropna().str.split(', ') :
+    for code in codes :
+        if code not in liste_codes and code != '' :
+            liste_codes.append(code)
+  print("Voici les codes parentaux : ")
+  display(liste_codes)
+
+  #code_parental = input("Entrez le code de contrôle parental : PG-13, TV-MA")
+
+
+
+ # attention il faut demander à chaque fois, s'il désire enregistrer la liste sur un .csv
+
+
+# Création du menu
+def menu() :
+  print("Voici les différentes options disponibles : ")
+  print("1.  Voir tout le catalogue ")
+  print("2.  Voir tous les films du catalogue ")
+  print("3.  Voir toutes les séries")
+  print("4.  Voir toutes les séries ou films par année")
+  print("5.  Voir toutes les séries ou films par pays")
+  print("6.  Voir toutes les séries ou films par type")
+  print("7.  Voir toutes les séries ou films par type trié par durée")
+  print("8.  Voir les films réalisés par un réalisateur précis et trié par année")
+  print("9.  Voir les films réalisés par un acteur précis et trié par année")
+  print("10.  Voir combien de films et de séries réalisés par un réalisateur selon un genre précis")
+  print("11. Voir dans combien de films et de séries un acteur a joué ")
+  print("12. Afficher les films ou séries les mieux notées ")
+  print("13. Afficher les films ou séries les mieux notées en précisant une année ")
+  print("14. Afficher les films ou séries récents les mieux notées ")
+  print("15. Afficher les films et séries en fonction du code de contrôle parental ")
+  print("16. Afficher la nationalités des réalisateurs et trier la liste en fonction du nombre de films et de séries réalisés")
+  print("17. Afficher les statistiques de bases")
+  print("... Entrez STOP pour arrêter ")
+  commande = input("Entrez le numéro de ce que vous voulez faire : ")
+  if commande == "1" :
+    catalogue(data_1)
+  elif commande == "2" :
+    film(data_1)
+  elif commande == "3" :
+    series(data_1)
+  elif commande == "4" :
+    year(data_1)
+  elif commande == "5" :
+    pays(data_1)
+  elif commande == "6" :
+    typ(data_1)
+  elif commande == "7" :
+    duree(data_1)
+  elif commande == "8" :
+    real(data_1)
+  elif commande == "9" :
+    acteur(data_1)
+  elif commande == "10" :
+    genre(data_1)
+  elif commande == "11" :
+    played(data_1)
+  elif commande == "12" :
+    rated(data_1)
+  elif commande == "13" :
+    rated_year(data_1)
+  elif commande == "14" :
+    rated_recent(data_1)
+  elif commande == "15" :
+    code(data_1)
+  elif commande == "16" :
+    nationalite(data_1)
+  elif commande == "17" :
+    stats(data_1)
+  elif commande == "STOP" :
+    return False
+
+
+
+ # attention il faut demander à chaque fois, s'il désire enregistrer la liste sur un .csv
+
+
+
+menu()
+
+menu_liste = []
+
+
+while True:
+    rep = menu()
+    if rep is False:
+        break
+    else:
+      if rep == True:
+        menu_list = []
+      else:
+        menu_list.append(rep)
\ No newline at end of file
-- 
GitLab