基于pandas的男女电影评价差异分析

看了南京大学的《用python玩转数据视频》,Python强大。代码做了些注释。慢慢逐渐深入。

https://scipy.org/

import pandas as pd
import numpy as np
 
# Download url: https://files.grouplens.org/datasets/movielens/ml-100k.zip

# 读取文件
unames = ['user id', 'age', 'gender', 'occupation', 'zip code']
users = pd.read_csv('ml-100k/u.user', sep = '|', names = unames) # 读取文件read_csv,sep指定分隔符
rnames = ['user id', 'item id', 'rating', 'timestamp']
ratings = pd.read_csv('ml-100k/u.data', sep = '\t', names = rnames)

# 数据筛选
users_df = users.loc[:, ['user id', 'gender']] # loc进行数据选取
ratings_df = ratings.loc[:, ['user id', 'rating']]
rating_df = pd.merge(users_df, ratings_df) # 合并
 
# Way 1 - groupby() 计算标准差
result = rating_df.groupby('gender').rating.apply(pd.Series.std)
print(result)
# Way 1 - pivot_table() 透视表 动态排列,分类汇总,可以实现groupby功能 index是索引
result = pd.pivot_table(rating_df, index = ['gender'], values = 'rating', aggfunc = pd.Series.std)
print(result)
 
# Way 2 - groupby() 据user id,gender计算男女标准差
df_temp = rating_df.groupby(['user id', 'gender']).apply(np.mean)
result = df_temp.groupby('gender').rating.apply(pd.Series.std)
print(result)
# Way 2 - pivot_table() 
gender_table = pd.pivot_table(rating_df, index = ['gender', 'user id'], values = 'rating')
Female_df = gender_table.query("gender == ['F']") # 获取女性的数据
Male_df = gender_table.query("gender == ['M']") # 获取男性的数据
Female_std = pd.Series.std(Female_df)
Male_std = pd.Series.std(Male_df) # 计算标准差
print('Gender', '\nF\t%.6f' % Female_std, '\nM\t%.6f' % Male_std) # 输出

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值