Here's two functions, one called get_recommendations(watched_movies) for getting movie recommendations, where watched_movies is a dictionary

def get_recommendations(watched_movies):

    print(watched_movies)
    similar_movies = pd.DataFrame()

    for movie_id,movie in watched_movies.items():
        similar_movies = similar_movies.append(get_similar_movies(movie["title"],movie["rating"]),ignore_index=True)
    
    all_recommend = similar_movies.sum().sort_values(ascending=False)

    recommended_movies = []
    for movie,score in all_recommend.iteritems():
        if not check_seen(movie,watched_movies):
            recommended_movies.append(movie)    

    if len(recommended_movies) > 100:
        recommended_movies = recommended_movies[0:100]        

    return recommended_movies
    

and another function called get_similar_movies which takes movie_name and user_rating as parameters

def get_similar_movies(movie_name,user_rating):
    try:
        similar_score = item_similarity_df[movie_name]*(user_rating-2.5)
        similar_movies = similar_score.sort_values(ascending=False)
    except:
        print("don't have movie in model")
        similar_movies = pd.Series([])
    
    #similar_movies = similar_movies.to_frame().reset_index()
   # print("similar_movies variable type : ", type(similar_movies))
    #print("similar_movies variable data : \n", similar_movies)
    return similar_movies

The problem is in the for loop when appending a Pandas Series to a Pandas Dataframe inside the get_recommendations(watched_movies).

I don't see anything being appended and don't have a clue where the underlying problem is.

I believe that there may be something wrong with the append() function. So please kindly provide some guidelines on how to debug this.

I tried printing the output of the get_similar_movies(movie_name,user_rating) function and got the output on the prompt as shown in this screenshot.

0

There are 0 best solutions below