当前位置: 首页 > news >正文

基于pandas的电影评分差异分析

基于pandas的电影评分差异分析

实验内容

在这里插入图片描述

数据来源

在这里插入图片描述

详细步骤


import pandas as pd
import numpy as npunames = ['user id','age','gender','occupation','zip code']
users = pd.read_csv('ml-100k/u.user',sep ='|',names = unames) # sep定义的是每行数据间的分隔符
rnames = ['user id','item id','rating','timestamp']
ratings = pd.read_csv('ml-100k/u.data', sep = '\t',names = rnames)# names指的是每个表的列名users_df = users.loc[:,['user id','gender']] # 做数据筛选,users中只使用'user id','gender'这两个属性
ratings_df = ratings.loc[:,['user id','rating']]
rating_df = pd.merge(users_df,ratings_df) # 把两个dataframe都有user id属性,通过merge函数连接起来# print(rating_df)
# 按gender计算rating的标准差,先对gender进行分组,再对rating属性使用std方法
# 下面是两种计算标准差的方法,区别在于numpy的是有偏估计(使用的是1/n),而pandas的是无偏估计(使用的是1/n-1),更贴近于实际情况
# 1.
std1 = rating_df.groupby("gender").rating.std()
print("第一种计算std的方法")
print(std1)
# 2.
std2 = rating_df.groupby("gender").rating.apply(pd.Series.std)
print("第二种计算std的方法")
print(std2)# 使用上述的标准差(std)确实证明了女性的评分差异比男性的更大,也说明了女性更主观,男性更逻辑# 上述做法只是考虑了gender的分组,并没有考虑用户对所有电影打分之间的关系
# 下面采用先计算出用户的综合评分(评分均值),然后按照性别计算出标准差
df1 = rating_df.groupby(["user id", "gender"]).apply(np.mean)
std3 = df1.groupby('gender').rating.std()
print("第三种计算std的方法")
print(std3)# 如果采用类似Excel的透视表功能(可以实现数据的动态排列和分类汇总),应当这么写,
std4 = pd.pivot_table(df1, values='rating', index='gender', aggfunc=pd.Series.std)
# 第一个参数df1是要透视的dataframe,values是设置要筛选的数据,index是分类依据(可以是多个,用[]),
# aggfunc用来设置聚合数据用的函数,默认是mean,可以是多个函数组合,还有一个参数是columns,设置列层次,对透视后的数据在列上分类
# 容易和values混淆,values设置的是行层次。
print("第四种计算std的方法")
print(std4)# 下面是第四种方法的整理
print("下面是第四种方法的整理")
t = pd.pivot_table(rating_df, index=['user id', 'gender'], values='rating')
print(t.query("gender == ['F']"))
female = t.query("gender == ['F']")
print(pd.Series.std(female))

源代码和数据集

链接:https://pan.baidu.com/s/1_3jkR-Ob2gGkjh8XhuRWdg
提取码:jxf7
复制这段内容后打开百度网盘手机App,操作更方便哦

实验结果

通过计算标准差,评价男女在电影评分上的理性和感性差异,可见男性的标准差相比于女性更小,继而推断出男性的评分更加的理性
下面是四种不同的标准差计算结果截图
在这里插入图片描述
下面是第四种方法的女性标准差的计算过程整理
在这里插入图片描述


http://www.taodudu.cc/news/show-4919099.html

相关文章:

  • 详细对比Sass与SCSS
  • 记录minio的bug(Object name contains unsupported characters.)
  • tp8 设置空控制器和空方法
  • 【退役之重学Java】如何处理消息丢失问题
  • 一个基于servlet的MVC项目-登录验证
  • gocator导出图片
  • 蓝桥杯评分标准_第十一届蓝桥杯软件个人赛校内选拔赛评分标准和选拔标准
  • 计算机一级考if函数是哪套题,这个IF函数计算题必须要掌握! 考试难点!
  • es修改排序_ElasticSearch 评分排序
  • 2021/06/29计算机视觉期末复习笔记整理
  • 简答题文本自动评分
  • 五角星动态评分效果
  • 微信小游戏云开发数据库
  • mysql 游戏服务器设计_网络游戏服务器数据库设计和实现.doc
  • unity数据库
  • 怎样修改游戏服务器里的数据库,修改游戏服务器中的数据库
  • echart地图修改label标签位置
  • react中label标签关联的用法
  • html中调整lable位置右移,[转载]label标签右对齐
  • label标签和input标签之间的关系
  • java label 标签_Java标签(Label)
  • CSS3学习笔记(九)——UI元素状态伪类选择器 :checked
  • 学生专用计算机如何打游戏,学生党电脑差怎么办?推荐几款低配的联机游戏,渣机也畅玩!...
  • 心理测试小游戏
  • java游戏解救人质_抖音解救人质的游戏
  • 枪战游戏html源码,html5西部牛仔枪战游戏源码
  • 使用Dart/Flutter语言开发的命令行文字RPG类型小游戏
  • 以电影为题材好玩的游戏总结
  • 基于Centos7.X的CS:GO社区服搭建
  • CS:GO 设置和优化
  • 安利一个好玩的JS编程游戏—warriorjs
  • CS和CSS的区别【吐血整理,疯狂推荐】
  • 2008游戏服务器系统下,Linux系统下玩经典游戏 CS1.5服务器架设
  • linux 搭建游戏服务器,Linux系统下玩经典游戏 CS1.5服务器架设
  • 通过「解救人质」小游戏教你学会碰撞检测
  • cocos creator实例--CocosCreator实现的 解救人质 游戏,学会碰撞检测