Я не уверен, что именно вы хотите достичь, но проверьте это:
import pandas as pd
df = pd.DataFrame(
{
'user_id': [1, 1, 1, 2, 2, ],
'title': ['t1', 't2', 't3', 't1', 't5'],
'rating': [25, 25, 35, 25, 30,],
})
df.sort_values(by='rating', ascending=False).groupby('user_id')[['user_id', 'title','rating', ]].nth(list(range(30)))