#python #pandas #dataframe
Вопрос:
Я хотел бы знать, сколько 0.5/1/1.5/2/2.5/3/3.5/4/4.5/5 рейтинги, которые оцениваются каждым пользователем в кадре данных определенного фильма, который является Одиннадцатым фильмом Оушена (2001), чтобы рассчитать корреляцию Пирсона по формуле.
Ниже приведен код
import numpy as np
import pandas as pd
ratings_data = pd.read_csv("D:\ratings.csv")
movies_name = pd.read_csv("D:\movies.csv")
movies_data = pd.merge(ratings_data, movies_name, on='movieId')
movies_data.groupby('title')['rating'].mean()
movies_data.groupby('title')['rating'].count()
average_ratings_count['rating_counts']=pd.DataFrame(movies_data.groupby('title')['rating'].count())
https://i.stack.imgur.com/1eFLV.png
matrix_user_ratings = movies_data.pivot_table(index='userId', columns='title', values='rating')
oceanRatings = matrix_user_ratings["Ocean's Eleven (2001)"]
oceanRatings.head(20)
userId
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
7 4.0
8 NaN
9 NaN
10 NaN
11 NaN
12 NaN
13 NaN
14 NaN
15 NaN
16 NaN
17 NaN
18 4.0
19 NaN
20 NaN
Name: Ocean's Eleven (2001), dtype: float64
В этом случае я просто могу знать, что есть два рейтинга 4.0, но у меня около 600 пользователей. Потому что я использую набор данных MovieLens.
Комментарии:
1. Как выглядит фрейм данных?
2. @Мохаммад Привет, это выглядит так i.stack.imgur.com/1eFLV.png И я просто хочу знать один фильм, который называется «Одиннадцать Оушена» (2001).
Ответ №1:
Вы можете использовать groupby
:
oceanRatings = matrix_user_ratings["Ocean's Eleven (2001)"].groupby('rating').count()
Или value_counts()
:
oceanRatings = matrix_user_ratings["Ocean's Eleven (2001)"].value_counts()