男女成绩判定python

编程入门 行业动态 更新时间:2024-10-07 14:33:23

男女<a href=https://www.elefans.com/category/jswz/34/1769940.html style=成绩判定python"/>

男女成绩判定python

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq,我们立即下架或删除。

简介:《用 Python 玩转数据》数据分析项目

一、程序功能

基于 MovieLens 100k 数据集中男性女性对电影的评分来判断男性还是女性电影

评分的差异性更大。

二、数据来源

数据集下载:

.zip

数据含义:

u.data 表示 100k 条评分记录,每一列的数值含义是:

user id | item id | rating | timestamp

u.user 表示用户的信息,每一列的数值含义是:

user id | age | gender | occupation | zip code

u.item 文件表示电影的相关信息,每一列的数值含义是:

movie/item id | movie title | release date | video release date |IMDb URL | unknown |

Action | Adventure | Animation | Children's | Comedy | Crime | Documentary | Drama |

Fantasy |Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi |Thriller | War |

Western |

# API 文档请参考 /

三、分析和参考代码

基于本数据集可以进行很多分析,例如简单的可基于男生和女生评分均值统计男

女各自最喜爱的 10 部电影,结果如下:

>>> mean_ratings[:10]

gender F M

title

'Til There Was You (1997) 2.200000 2.500000

1-900 (1994) 1.000000 3.000000

101 Dalmatians (1996) 3.116279 2.772727

12 Angry Men (1957) 4.269231 4.363636

187 (1997) 3.500000 2.870968

2 Days in the Valley (1996) 3.235294 3.223684

20,000 Leagues Under the Sea (1954) 3.214286 3.568966

2001: A Space Odyssey (1968) 3.491228 4.103960

3 Ninjas: High Noon At Mega Mountain (1998) 1.000000 1.000000

39 Steps, The (1935) 4.000000 4.060000

而要判断男性还是女性电影评分的差异性大小则可以利用标准差,标准差越大表

示评分离散程度大,即差异性大,反之表示数据越聚集,差异性小。

【参考程序】

import pandas as pd

import numpy as np

# 读入数据

unames = ['user id', 'age', 'gender', 'occupation', 'zip code']

users = pd.read_table('ml-100k/u.user', sep = '\|', names = unames, engine='python')

rnames = ['user id', 'item id', 'rating', 'timestamp']

ratings = pd.read_table('ml-100k/u.data', sep='\t', names = rnames, engine='python')

# 选择需要的数据列,提高效率

users_df = pd.DataFrame()

users_df['user id'] = users['user id']

users_df['gender'] = users['gender']

ratings_df = pd.DataFrame()

ratings_df['user id'] = ratings['user id']

ratings_df['rating'] = ratings['rating']

# 将数据合并

rating_df = pd.merge(users_df, ratings_df)

gender_table = pd.pivot_table(rating_df, index = ['gender', 'user id'], values = 'rating')

# 利用 pandas 中的数据透视表 pivot_table()函数对数据进行聚合,gender_table 中

的数据形式为:

# gender user id

# F 2 3.709677

# 5 2.874286

# …

# M 898 3.500000

# 899 3.525926

# …

gender_df = pd.DataFrame(gender_table)

# 分男女

Female_df = gender_df.query("gender == ['F']")

Male_df = gender_df.query("gender == ['M']")

# 按性别计算评分的标准差

Female_std = np.std(Female_df)

Male_std = np.std(Male_df)

print ('Gender', '\nF\t%.6f' % Female_std, '\nM\t%.6f' % Male_std)

程序执行结果:

Gender

F 0.480358

M 0.429755

结论:女生的电影评分差异性更大 更多>>

更多推荐

男女成绩判定python

本文发布于:2024-02-28 05:28:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768511.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:成绩   男女   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!