Partage
  • Partager sur Facebook
  • Partager sur Twitter

KeyError: -8418620743404378592

    17 octobre 2021 à 15:51:28

    svp , j'ai voulu utiliser un dataset qui contient trois fichiers CSV: users, movies et ratings , les deux premiers fichiers commencent par une colonne id avec des valeurs negatives.

    alors j'ai essayé de supprimer les utilisateurs et les films qui n'existent pas dans le tableau "ratings" de cette manière:

    self.users = self.users[self.users['id'].isin(self.ratings['user_id'])]
    self.movies = self.movies[self.movies['id'].isin(self.ratings['movie_id'])
    
    self.user_ids_invmap = {u: i for i, u in enumerate(self.users['id'])}
    self.movie_ids_invmap = {m: i for i, m in enumerate(self.movies['id'])}
    
    self.ratings['user_idx'] = self.ratings['user_id'].apply(lambda x: self.user_ids_invmap[x])
    self.ratings['movie_idx'] = self.ratings['movie_id'].apply(lambda x: self.movie_ids_invmap[x])

     mais apres l'execution j'obtiens cet erreur :

    <ipython-input-24-b868194a067e> in __init__(self, directory, neg_size)
        137 
        138         self.ratings['user_idx'] = self.ratings['user_id'].apply(lambda x: self.user_ids_invmap[x])
    --> 139         self.ratings['movie_idx'] = self.ratings['movie_id'].apply(lambda x: self.movie_ids_invmap[x])
        140 
        141         # parse movie features
    
    /usr/local/lib/python3.7/dist-packages/pandas/core/series.py in apply(self, func, convert_dtype, args, **kwds)
       4211             else:
       4212                 values = self.astype(object)._values
    -> 4213                 mapped = lib.map_infer(values, f, convert=convert_dtype)
       4214 
       4215         if len(mapped) and isinstance(mapped[0], Series):
    
    pandas/_libs/lib.pyx in pandas._libs.lib.map_infer()
    
    <ipython-input-24-b868194a067e> in <lambda>(x)
        137 
        138         self.ratings['user_idx'] = self.ratings['user_id'].apply(lambda x: self.user_ids_invmap[x])
    --> 139         self.ratings['movie_idx'] = self.ratings['movie_id'].apply(lambda x: self.movie_ids_invmap[x])
        140 
        141         # parse movie features
    
    KeyError: -8418620743404378592

    comment résoudre? ce problème et merci




    -
    Edité par Driss EL ALAOUI 17 octobre 2021 à 15:52:57

    • Partager sur Facebook
    • Partager sur Twitter
      25 octobre 2021 à 17:50:42

      le message dit qu'il y a un problème avec la clé -8418620743404378592 donc qu'il ne trouve pas cette clé dans un des dictionnaires de ligne indiqué (ligne 139), ce qui veut qu'elle a du être supprimé avant
      • Partager sur Facebook
      • Partager sur Twitter

      KeyError: -8418620743404378592

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown