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

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

实验内容

在这里插入图片描述

数据来源

在这里插入图片描述

详细步骤


import pandas as pd
import numpy as np


unames = ['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,操作更方便哦

实验结果

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

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于Pandas技术分析的目的是为了通过对数据进行统计和分析,从而获得对数据的深入理解和洞察。Pandas提供了丰富的数据处理和分析功能,使得数据分析人员能够更轻松地进行数据清洗、转换、聚合和可视化等操作。 通过基于Pandas的技术分析,可以实现以下目的和意义: 1. 数据清洗和预处理:Pandas提供了强大的数据清洗和预处理功能,可以帮助数据分析人员处理缺失值、异常值、重复值等数据质量问题,从而提高数据的准确性和可靠性。 2. 数据转换和整合:Pandas支持对数据进行灵活的转换和整合操作,例如数据重塑、合并、拆分、排序等,可以根据实际需求对数据进行灵活的处理和组合。 3. 数据聚合和统计:Pandas提供了丰富的聚合和统计函数,可以对数据进行各种统计计算,例如求和、平均值、最大值、最小值、标准差等,从而帮助数据分析人员深入了解数据的分布和特征。 4. 数据可视化:Pandas结合Matplotlib等可视化库,可以方便地进行数据可视化操作,例如绘制折线图、柱状图、散点图等,从而更直观地展示数据的趋势和关系。 5. 数据分析和建模:Pandas提供了丰富的数据分析和建模功能,例如数据切片、筛选、分组、透视表等,可以帮助数据分析人员进行更深入的数据分析和挖掘,从而发现数据中的规律和趋势。 通过基于Pandas的技术分析,数据分析人员可以更好地理解和利用数据,从而做出更准确和有价值的决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨陌潇潇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值