Как вы можете получить значение из третьего столбца, зная значения первых двух - PullRequest
1 голос
/ 04 ноября 2019

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

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

import pandas as pd
import numpy as np
import matplotlib as plot

def main():
    df = pd.read_csv(r'/Users/ttbarack/Desktop/ratings.csv')
    #print(df)
    userIds = []
    for id in df['userId']:
        if id not in userIds:
            userIds.append(id)
    #print(userIds)
    movieIds = []
    for movie in df['movieId']:
        if movie not in movieIds:
            movieIds.append(movie)
    #print(movieIds)


    """PART 1"""


    finalList = []
    for id in userIds:
        newlist = []
        for mov in movieIds:
            newlist.append(df['rating'].where(df['userId'].values() == id and df['movieId'].values() == mov))
        finalList.append(newlist)
    print(finalList)

Это ошибка I 'м получаю:

Traceback (most recent call last):
  File "/Users/ttbarack/PycharmProjects/Proj1/Project2.py", line 29, in <module>
    main()
  File "/Users/ttbarack/PycharmProjects/Proj1/Project2.py", line 22, in main
    newlist.append(df['rating'].where(df['userId'].values() == id and df['movieId'].values() == mov))
TypeError: 'numpy.ndarray' object is not callable

1 Ответ

0 голосов
/ 04 ноября 2019

Ошибка в том, что вы вызываете массив numpy как функцию

, используйте:

newlist.append(df['rating'].where(df['userId'] == id and df['movieId'] == mov))

вместо

newlist.append(df['rating'].where(df['userId'].values() == id and df['movieId'].values() == mov))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...