diff --git a/projet_en_groupe/algorithme_netflix b/projet_en_groupe/algorithme_netflix new file mode 100644 index 0000000000000000000000000000000000000000..be3b2f30c8c87b4beaea13479ff642b8549941f5 --- /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