Code: Alles auswählen
def most_rated_film(df1,df2,anzahl):
dfmovies = df1
dfratings = df2
dfmerge = pd.merge(dfmovies,dfratings,on = "movieId")
dfmerge["Menge der Bewertungen"] = 1
dfmenge = dfmerge.groupby("movieId")["Menge der Bewertungen"].sum()
dfmenge = dfmenge.to_frame()
dfmenge = dfmenge.reset_index()
dfzusammen = pd.merge(movies,dfmenge,on = "movieId")
countpermovie = dfzusammen.sort_values("Menge der Bewertungen", axis = 0,ascending = False)
countpermovie = countpermovie.reset_index()
countpermovie = countpermovie[["movieId","title","Menge der Bewertungen"]]
countpermovie.rename(columns={'title':'Titel des Films',
'Menge der Bewertungen':'Anzahl der erhaltenen Bewertungen'},inplace=True)
return countpermovie.head(anzahl)
Code: Alles auswählen
most_rated_film(movies,ratings,10)
Jetzt mit dem Slider Funktioniert das leider nicht:
Code: Alles auswählen
set_anzahl = widgets.IntSlider(min=1, max=20, step=1, value=1, description="Anzahl:")
most_rated_film(movies, ratings, set_anzahl)
ps. dass der Code nicht sehr anschaulich ist, ist mir bewusst

---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/var/folders/r1/txm07tps00s295995cqyrs2w0000gn/T/ipykernel_8101/1253293865.py in <module>
2
3 set_anzahl = widgets.IntSlider(min=1, max=20, step=1, value=1, description="Anzahl:")
----> 4 most_rated_film(movies, ratings, set_anzahl)
/var/folders/r1/txm07tps00s295995cqyrs2w0000gn/T/ipykernel_8101/3440946735.py in most_rated_film(df1, df2, anzahl)
15 countpermovie.rename(columns={'title':'Titel des Films',
16 'Menge der Bewertungen':'Anzahl der erhaltenen Bewertungen'},inplace=True)
---> 17 return countpermovie.head(anzahl)
~/opt/anaconda3/lib/python3.9/site-packages/pandas/core/generic.py in head(self, n)
5071 5 parrot
5072 """
-> 5073 return self.iloc[:n]
5074
5075 @final
~/opt/anaconda3/lib/python3.9/site-packages/pandas/core/indexing.py in __getitem__(self, key)
929
930 maybe_callable = com.apply_if_callable(key, self.obj)
--> 931 return self._getitem_axis(maybe_callable, axis=axis)
932
933 def _is_scalar_access(self, key: tuple):
~/opt/anaconda3/lib/python3.9/site-packages/pandas/core/indexing.py in _getitem_axis(self, key, axis)
1541
1542 if isinstance(key, slice):
-> 1543 return self._get_slice_axis(key, axis=axis)
1544
1545 if is_iterator(key):
~/opt/anaconda3/lib/python3.9/site-packages/pandas/core/indexing.py in _get_slice_axis(self, slice_obj, axis)
1576
1577 labels = obj._get_axis(axis)
-> 1578 labels._validate_positional_slice(slice_obj)
1579 return self.obj._slice(slice_obj, axis=axis)
1580
~/opt/anaconda3/lib/python3.9/site-packages/pandas/core/indexes/base.py in _validate_positional_slice(self, key)
3682 """
3683 self._validate_indexer("positional", key.start, "iloc")
-> 3684 self._validate_indexer("positional", key.stop, "iloc")
3685 self._validate_indexer("positional", key.step, "iloc")
3686
~/opt/anaconda3/lib/python3.9/site-packages/pandas/core/indexes/base.py in _validate_indexer(self, form, key, kind)
5717
5718 if key is not None and not is_integer(key):
-> 5719 raise self._invalid_indexer(form, key)
5720
5721 def _maybe_cast_slice_bound(self, label, side: str_t, kind=no_default):
TypeError: cannot do positional indexing on RangeIndex with these indexers [IntSlider(value=1, description='Anzahl:', max=20, min=1)] of type IntSlider