如何根据评论找到每部电影的平均分数-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()的内容