Функция не возвращает правильное количество наблюдений - PullRequest
0 голосов
/ 19 октября 2019

Я пытаюсь создать функцию для отображения n количества фильмов, наиболее оцененных пользователем в данном кадре данных. Мне удалось извлечь фильмы, для которых был предоставлен рейтинг пользователя, но я не могу вернуть правильное количество строк - вместо этого он печатает все фильмы с рейтингом пользователя.

Я пробовал этот способ, как показано накод с .head(n_rows), но он не работает:

def top_movies(data_,usr,n_rows = 10):
    user = data_[data_['user_id']== usr]
    movies = data_.loc[user.index].groupby('title')['title','rating']
    final = movies.head(n_rows).sort_values(by = 'rating' ,ascending = False)
    return final
def ex9():
    return top_movies(data,1,30)
ex9()

Я ожидаю напечатать первые 30 строк, например, здесь.

Ответы [ 2 ]

0 голосов
/ 19 октября 2019

нашел ответ. Спасибо !!!

0 голосов
/ 19 октября 2019

Я не уверен, что именно вы хотите достичь, но проверьте это:

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)))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...