Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据评论找到每部电影的平均分数-Python_Python_Python 3.x_Pandas_Dataframe_Recommendation Engine - Fatal编程技术网

如何根据评论找到每部电影的平均分数-Python

如何根据评论找到每部电影的平均分数-Python,python,python-3.x,pandas,dataframe,recommendation-engine,Python,Python 3.x,Pandas,Dataframe,Recommendation Engine,我有这样的数据帧 UserID Review MovieID 0 10112 Good MOV001 1 10112 Excellent MOV002 2 10112 Average MOV003 3 10113 Good MOV001 4 10113 Bad MOV002 5 10113 Good MOV003 6 10113 Excellent

我有这样的数据帧

    UserID  Review      MovieID
0   10112   Good        MOV001
1   10112   Excellent   MOV002
2   10112   Average     MOV003
3   10113   Good        MOV001
4   10113   Bad         MOV002
5   10113   Good        MOV003
6   10113   Excellent   MOV004
7   10114   Good        MOV001
8   10114   Bad         MOV002
9   10114   Good        MOV003
10  10114   Excellent   MOV004
我已将评论更改为int值

movies.Review[movies.Status == 'Average'] = 2
movies.Review[movies.Status == 'Good'] = 3
movies.Review[movies.Status == 'Excellent'] = 5
movies.Review[movies.Status == 'Very Good'] = 4
movies.Review[movies.Status == 'Okay'] = 1
movies.Review[movies.Status == 'Bad'] = 0
movies
现在我的数据框看起来像这样

UserID  Review      MovieID
0   10112   3           MOV001
1   10112   5           MOV002
2   10112   2           MOV003
3   10113   3           MOV001
4   10113   0           MOV002
5   10113   3           MOV003
6   10113   5           MOV004
7   10114   3           MOV001
8   10114   0           MOV002
9   10114   3           MOV003
10  10114   5           MOV004

现在我如何根据评论找到每部电影的平均分数?有人能帮我吗?

首先,你不需要那些
电影。查看[movies.Status==…]=…
。相反,使用
np。选择
map

Status_convert = {'Bad':0, 'Okay':1, 'Average':2,
                   'Good':3, 'Very Good':4, 'Excellent':5}
movies['Review'] = movies.Status.map(Status_convert)
然后你可以做:

df.groupby('MovieID')['Review'].mean()
输出:

MovieID
MOV001    3.000000
MOV002    1.666667
MOV003    2.666667
MOV004    5.000000
Name: Review, dtype: float64

首先,您不需要这些
电影。请查看[movies.Status==…]=…
。相反,使用
np。选择
map

Status_convert = {'Bad':0, 'Okay':1, 'Average':2,
                   'Good':3, 'Very Good':4, 'Excellent':5}
movies['Review'] = movies.Status.map(Status_convert)
然后你可以做:

df.groupby('MovieID')['Review'].mean()
输出:

MovieID
MOV001    3.000000
MOV002    1.666667
MOV003    2.666667
MOV004    5.000000
Name: Review, dtype: float64

groupby.mean
?你能帮我写代码吗?根据你设置分数的逻辑,查看
np。选择
Yes,如前所述,你需要类似于
movies.groupby('MovieID').mean()的东西。
groupby.mean
?你能帮我写代码吗?根据你设置分数的逻辑,查看
np。选择
Yes,如前所述,您需要类似于
movies.groupby('MovieID').mean()的内容