Skip to content

Enhancing Data Management for the class RecommendationSystem #1

@seva781

Description

@seva781

The current implementation of adding and removing liked genres, directors, writers, and actors could be optimized. The set_liked_* methods use add and drop, which might not be the most efficient approach for managing Series data. Using pd.Series's inherent indexing capabilities can simplify these operations. Here is my suggestion :)

def set_liked_genre(self, genre: Genre, liked: bool):
"""Likes or unlikes a genre."""
genre.liked = liked
if liked:
self.liked_genres = self.liked_genres.append(pd.Series([genre.name]), ignore_index=True)
else:
self.liked_genres = self.liked_genres[self.liked_genres != genre.name]

def set_liked_director(self, director: Person, liked: bool):
"""Likes or unlikes a director."""
director.liked = liked
if liked:
self.liked_directors = self.liked_directors.append(pd.Series([director.name]), ignore_index=True)
else:
self.liked_directors = self.liked_directors[self.liked_directors != director.name]

def set_liked_writer(self, writer: Person, liked: bool):
"""Likes or unlikes a writer."""
writer.liked = liked
if liked:
self.liked_writers = self.liked_writers.append(pd.Series([writer.name]), ignore_index=True)
else:
self.liked_writers = self.liked_writers[self.liked_writers != writer.name]

def set_liked_actor(self, actor: Person, liked: bool):
"""Likes or unlikes an actor."""
actor.liked = liked
if liked:
self.liked_actors = self.liked_actors.append(pd.Series([actor.name]), ignore_index=True)
else:
self.liked_actors = self.liked_actors[self.liked_actors != actor.name]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions