Skip to content
Extraits de code Groupes Projets
analytics.py 4,71 ko
Newer Older
  • Learn to ignore specific revisions
  • Adrien Payen's avatar
    Adrien Payen a validé
    #reloads modules automatically before entering the execution of code
    # %load_ext autoreload
    # %autoreload 2
    
    # third parties imports
    import numpy as np 
    import pandas as pd
    
    Adrien Payen's avatar
    Adrien Payen a validé
    import re
    
    Adrien Payen's avatar
    Adrien Payen a validé
    # -- add new imports here --
    
    # local imports
    from constants import Constant as C
    from loaders import load_ratings
    from loaders import load_items
    
    # -- load the items and display the Dataframe
    
    Adrien Payen's avatar
    Adrien Payen a validé
    load_items()
    load_ratings()
    
    df_movies = pd.read_csv("data/small/content/movies.csv")
    n_movies = df_movies['title'].nunique()
    
    print("\n") 
    print(f"Number of movies: {n_movies}")
    
    df_movies['annee'] = df_movies['title'].str.extract(r'\((.{4})\)')
    df_movies['annee'] = pd.to_numeric(df_movies['annee'], errors='coerce')
    
    # Trouver le range minimum et maximum
    min_range = int(df_movies['annee'].min())
    max_range = int(df_movies['annee'].max())
    
    # Afficher le range minimum et maximum
    print("\n") 
    print(f"Minimum range: {min_range}")
    print(f"Maximum range: {max_range}")
    
    
    print("\n") 
    df_movies['genres'] = df_movies['genres'].str.split('|')
    df_movies = df_movies.explode('genres')
    
    # Afficher tous les genres uniques
    unique_genres = sorted(df_movies['genres'].unique())
    print("List of all genres:")
    for genre in unique_genres:
        print(genre, "|", end = " ")
    
     
    print("\n","A") 
    df_ratings = pd.read_csv("data/small/evidence/ratings.csv")
    n_ratings = df_ratings['rating'].count()
    print(f"Number of ratings: {n_ratings}")
    
    
    print("\n","B") 
    df_ratings = pd.read_csv("data/small/evidence/ratings.csv")
    n_users = df_ratings['userId'].nunique()
    print(f"Number of users: {n_users}")
    
    
    print("\n","C") 
    
    
    Adrien Payen's avatar
    Adrien Payen a validé
    print("\n","D") 
    def most_rated_movies_ratings_count(csv_file):
        # Charger le DataFrame des évaluations à partir du fichier CSV
        df_ratings = pd.read_csv(csv_file)
    
        # Grouper les évaluations par 'movieId' et compter le nombre de notes pour chaque film
        movie_ratings_count = df_ratings.groupby('movieId')['rating'].count()
    
        # Trouver le(s) film(s) le(s) plus évalué(s)
        most_rated_movies = movie_ratings_count[movie_ratings_count == movie_ratings_count.max()]
    
        # Afficher le nombre de notes du film (ou des films) le(s) plus évalué(s)
        print("Number of ratings of the most rated movie(s):", most_rated_movies.max())
    
    # Exemple d'utilisation de la fonction avec le chemin du fichier CSV
    most_rated_movies_ratings_count("data/small/evidence/ratings.csv")
    
    
    
    
    print("\n","E")
    def least_rated_movies_ratings_count(csv_file):
        # Charger le DataFrame des évaluations à partir du fichier CSV
        df_ratings = pd.read_csv(csv_file)
    
        # Grouper les évaluations par 'movieId' et compter le nombre de notes pour chaque film
        movie_ratings_count = df_ratings.groupby('movieId')['rating'].count()
    
        # Trouver le(s) film(s) le(s) moins évalué(s)
        least_rated_movies = movie_ratings_count[movie_ratings_count == movie_ratings_count.min()]
    
        # Afficher le nombre de notes du film (ou des films) le(s) moins évalué(s)
        print("Number of ratings of the least rated movie(s):", least_rated_movies.min())
    
    # Exemple d'utilisation de la fonction avec le chemin du fichier CSV
    least_rated_movies_ratings_count("data/small/evidence/ratings.csv")
    
    
    print("\n","F")
    def all_possible_ratings(csv_file):
        # Charger le DataFrame des évaluations à partir du fichier CSV
        df_ratings = pd.read_csv(csv_file)
    
        # Obtenir toutes les valeurs de notation uniques
        rating_values = sorted(df_ratings['rating'].unique())
    
        # Afficher toutes les valeurs de notation possibles
        print("All possible rating values, from smallest to highest:")
        for rating in rating_values:
            print(rating)
    
    # Exemple d'utilisation de la fonction avec le chemin du fichier CSV
    all_possible_ratings("data/small/evidence/ratings.csv")
    
    print("\n","G")
    def unrated_movies_count(ratings_csv, movies_csv):
        # Charger les DataFrames des évaluations et des films à partir des fichiers CSV
        df_ratings = pd.read_csv(ratings_csv)
        df_movies = pd.read_csv(movies_csv)
    
        # Obtenir la liste de tous les films présents dans le fichier de notation
        rated_movies = df_ratings['movieId'].unique()
    
        # Comparer la liste des films notés à la liste complète des films pour obtenir les films non notés
        unrated_movies_count = df_movies[~df_movies['movieId'].isin(rated_movies)].shape[0]
    
        # Afficher le nombre de films non notés
        print("Number of movies that were not rated at all:", unrated_movies_count)
    
    # Exemple d'utilisation de la fonction avec les chemins des fichiers CSV des évaluations et des films
    unrated_movies_count("data/small/evidence/ratings.csv", "data/small/content/movies.csv")
    
    
    
    
    
    
    
    
    Adrien Payen's avatar
    Adrien Payen a validé
    # -- display relevant informations that can be extracted from the dataset
    
    
    Adrien Payen's avatar
    Adrien Payen a validé
    # -- load the items and display the Dataframe
    
    
    Adrien Payen's avatar
    Adrien Payen a validé
    
    # -- display relevant informations that can be extracted from the dataset