TypeError: 'Series' objects are mutable, thus they cannot be hashed
def get_predict(user_id, title):
    return svd.predict(user_id, id_map.loc[title, 'movieId']).est

def watched (user_id, title):
    user_table = get_user_table(user_id)
    if len(user_table[user_table['title'] == title])>0:
        return 'Yes'
    else:
        return 'No'

def just_watch_it(user, rating_min):
    should_watch = pd.DataFrame([], columns=['title', 'predicted rating'])
    for i in range(len(id_map)):
        if watched (user, id_map.iloc[i].name) == 'No':
            predicted_rating = get_predict(user, id_map.iloc[i].name)
            if predicted_rating >= rating_min:
                should_watch.loc[len(should_watch.index)] = {'title':id_map.iloc[i].name, 
                                                            'predicted rating': predicted_rating}
    
    return should_watch

list_of_movies = just_watch_it(8, 4)

```
#### Problem description
The code snippet above was written in jupyter notebook. All the functions seem to be fine, but I get an TypeError when I run the last line of code : "list_of_movies = just_watch_it(8, 4)". The data is fetched from csv files. 


####This is the error I got
TypeError                                 Traceback (most recent call last)
<ipython-input-26-10f2f7e6568f> in <module>()
----> 1 list_of_movies = just_watch_it(8, 4)

<ipython-input-25-15ecb3df6b29> in just_watch_it(user, rating_min)
      3     for i in range(len(id_map)):
      4         if watched (user, id_map.iloc[i].name) == 'No':
----> 5             predicted_rating = get_predict(user, id_map.iloc[i].name)
      6             if predicted_rating >= rating_min:
      7                 should_watch.loc[len(should_watch.index)] = {'title':id_map.iloc[i].name, 

<ipython-input-17-7d30a8ba596e> in get_predict(user_id, title)
      1 def get_predict(user_id, title):
----> 2     return svd.predict(user_id, id_map.loc[title, 'movieId']).est

C:\ProgramData\Anaconda2\lib\site-packages\surprise\prediction_algorithms\algo_base.pyc in predict(self, uid, iid, r_ui, clip, verbose)
    138             iuid = 'UKN__' + str(uid)
    139         try:
--> 140             iiid = self.trainset.to_inner_iid(iid)
    141         except ValueError:
    142             iiid = 'UKN__' + str(iid)

C:\ProgramData\Anaconda2\lib\site-packages\surprise\trainset.pyc in to_inner_iid(self, riid)
    149 
    150         try:
--> 151             return self._raw2inner_id_items[riid]
    152         except KeyError:
    153             raise ValueError('Item ' + str(riid) +

C:\ProgramData\Anaconda2\lib\site-packages\pandas\core\generic.py in __hash__(self)
   1487     # ----------------------------------------------------------------------
   1488     # Iteration
-> 1489 
   1490     def __hash__(self):
   1491         raise TypeError('{0!r} objects are mutable, thus they cannot be'

TypeError: 'Series' objects are mutable, thus they cannot be hashed
