pandas实例——电影数据分析

准备工作

数据下载

从网站 grouplens.org/datasets/movielens 下载 MovieLens 1M Dataset 数据,该文件包含大约3883部电影的1000209个匿名评级。
文件中包含三个数据表,分别为用户表、电影表及评分表。
在这里插入图片描述

分析任务

1、统计电影平均得分
2、男女生评分差距最大的电影
3、女生最喜欢的电影排行榜
4、男生最喜欢的电影排行榜
5、统计活跃电影 -> 获得评分的次数越多说明电影越活跃

数据处理

数据读取

# 导入必要的模块
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

1、用户表users.dat包含5列,分别为用户id、性别、年龄、职业及邮编

1::F::1::10::48067
2::M::56::16::70072
3::M::25::15::55117
4::M::45::7::02460
5::M::25::20::55455
6::F::50::9::55117
7::M::35::1::06810
8::M::25::12::11413
9::M::25::17::61614
10::F::35::1::95370
···

读取users.dat

movie_names = ['movie_id', 'title', 'genres']
movies = pd.read_table('ml-1m/movies.dat', sep='::', header=None, names=movie_names, engine='python')
print(len(movies))
movies.head(5)
# 运行结果

在这里插入图片描述
2、电影表movies.dat包含3列,分别为电影id、电影名称及电影类型

1::Toy Story (1995)::Animation|Children's|Comedy
2::Jumanji (1995)::Adventure|Children's|Fantasy
3::Grumpier Old Men (1995)::Comedy|Romance
4::Waiting to Exhale (1995)::Comedy|Drama
5::Father of the Bride Part II (1995)::Comedy
···

读取movies.dat

rating_names = ['user_id', 'movie_id', 'rating', 'timestamp']
ratings = pd.read_table('ml-1m/ratings.dat', sep='::', header=None, names=rating_names, engine='python')
print(len(ratings))
ratings.head(5)
# 运行结果

在这里插入图片描述
3、评分表ratings.dat包含4列,分别为用户id、电影id、评分及日期

1::1193::5::978300760
1::661::3::978302109
1::914::3::978301968
1::3408::4::978300275
1::2355::5::978824291
···

读取ratings.dat

rating_names = ['user_id', 'movie_id', 'rating', 'timestamp']
ratings = pd.read_table('ml-1m/ratings.dat', sep='::', header=None, names=rating_names, engine='python')
print(len(ratings))
ratings.head(5)
# 运行结果

在这里插入图片描述

数据合并

data = pd.merge(pd.merge(users, ratings), movies)
print(len(data))
data.head(5)

在这里插入图片描述
查看用户id为1的记录

data[data.user_id == 1].head(5)

在这里插入图片描述

数据分析

1、统计电影平均得分
统计各个电影在男性和女性观众中的平均分及总平均分

mean_ratings_gender = data.pivot_table(values='rating', index='title',columns='gender', aggfunc='mean')
mean_ratings_gender['rating'] = (mean_ratings_gender['F'] + mean_ratings_gender['M']) / 2
mean_ratings_gender.head(5)

在这里插入图片描述
前二十大高分电影

mean_ratings = data.pivot_table(values='rating', index='title', aggfunc='mean')
top_20_mean_ratings = mean_ratings.sort_values(by='rating',ascending=False).head(20)
top_20_mean_ratings

在这里插入图片描述

2、男女生评分差距最大的电影

mean_ratings_gender['diff'] = abs(mean_ratings_gender.F - mean_ratings_gender.M)
mean_ratings_gender['diff'] = abs(mean_ratings_gender.F - mean_ratings_gender.M)

在这里插入图片描述
3、女生最喜欢的电影排行榜

mean_ratings_gender.sort_values(by='F', ascending=False).head(10)

在这里插入图片描述
4、男生最喜欢的电影排行榜

mean_ratings_gender.sort_values(by='M', ascending=False).head(10)

在这里插入图片描述
5、统计活跃电影 -> 获得评分的次数越多说明电影越活跃

# 统计每个电影获得评分的次数
ratings_by_movie_title = data.groupby('title').size()
top_10_ratings = ratings_by_movie_title.sort_values(ascending=False).head(10)
top_10_ratings

# 运行结果
title
American Beauty (1999)                                   3428
Star Wars: Episode IV - A New Hope (1977)                2991
Star Wars: Episode V - The Empire Strikes Back (1980)    2990
Star Wars: Episode VI - Return of the Jedi (1983)        2883
Jurassic Park (1993)                                     2672
Saving Private Ryan (1998)                               2653
Terminator 2: Judgment Day (1991)                        2649
Matrix, The (1999)                                       2590
Back to the Future (1985)                                2583
Silence of the Lambs, The (1991)                         2578
dtype: int64
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python数据分析中,pandas是一个非常重要的库,它提供了一种灵活、高效、易用的数据结构,可以帮助我们进行数据清洗、数据处理、数据分析等工作。下面是一些pandas实例: 1. 读取数据pandas可以读取多种格式的数据,如csv、excel、json等。使用read_csv、read_excel、read_json等函数可以读取相应格式的数据文件。 2. 数据清洗:pandas可以帮助我们清洗数据,如去除重复值、处理缺失值、替换异常值等。使用drop_duplicates、dropna、fillna、replace等函数可以实现相应的功能。 3. 数据分组:pandas可以将数据按照某些条件进行分组,然后对每组数据进行统计分析。使用groupby函数可以实现数据分组。 4. 数据聚合:pandas可以对数据进行聚合操作,如求和、求平均值、求最大值、求最小值等。使用sum、mean、max、min等函数可以实现相应的聚合操作。 5. 数据合并:pandas可以将多个数据集合并成一个数据集,可以按照某些条件进行合并。使用merge、concat等函数可以实现数据合并。 6. 数据可视化:pandas可以将数据进行可视化展示,如绘制柱状图、折线图、散点图等。使用plot函数可以实现数据可视化。 以上是一些pandas实例,希望对你有所帮助。 ### 回答2: Python数据分析的关键点之一是数据可以以各种方式被处理和探索。对于数据处理,Pandas是一个非常有用的Python库,它提供了各种功能和方法来处理不同类型的数据Pandas 对于大数据集提供了广泛的支持,使其能够在实践中使用。让我们来看一些Python数据分析Pandas实例,了解Pandas的主要功能和应用。 1. 读取数据 在Python中使用Pandas库导入数据集是很简单的。我们可以使用 read_csv() 函数来读取csv文件, read_excel() 函数来读取Excel文件等等。例如,以下代码可以读取CSV格式的数据: import pandas as pd data = pd.read_csv("data.csv") 2. 数据清洗 在数据的每个行或列中,我们有时会遇到缺失值或不必要的数据。在这种情况下,我们可以使用 Pandas 来清洗数据。以下是一些数据清洗的示例: # 删除列 data = data.drop('column_name', axis=1) # 删除行 data = data.drop(data.index[[0,1,2]]) # 替换NaN值 data = data.fillna(method="ffill") # 去除重复值 data = data.drop_duplicates() 3. 数据分组和聚合 Pandas库提供了一些函数来处理分组和聚合数据Pandas中的groupby()方法可以将数据按照一个或多个列进行分组。以下是一些数据分组和聚合的示例: # 按照列分组 grouped = data.groupby('column_name') # 按照多列分组 grouped = data.groupby(['col1', 'col2']) # 聚合 aggregated = grouped.aggregate(np.sum) 4. 数据可视化 数据可视化是数据分析的最重要环节之一。在Pandas中,提供了许多有用的可视化工具。因此,我们可以在我们的分析中使用这些库来更好地理解数据。以下是一些数据可视化的示例: # 绘制柱状图 data.plot(kind='bar') # 绘制折线图 data.plot(kind='line') # 绘制散点图 data.plot(kind='scatter') 总结 在Python数据分析中,Pandas是一个强大的工具,可以让我们方便、高效地处理、分析和探索数据。通过将数据读入Pandas,清洗数据,聚合数据并将结果可视化,我们可以更好地理解和分析数据集。以上是一些Python数据分析Pandas实例的简单介绍,希望能够对你在数据分析方面有所帮助。 ### 回答3: Python是一种非常流行的编程语言,适用于各种数据分析和科学计算。Pandas是Python的一个开源库,广泛用于数据分析数据处理。Pandas提供了许多数据结构和函数,使得数据分析和操作变得更加方便和高效。 Pandas的主要数据结构是Series和DataFrame。Series是一维数据结构,类似于Python的列表,但具有更多的功能,例如索引、行标签和数据类型等。DataFrame是二维数据结构,类似于电子表格,包含多个列和行,每列可以有不同的数据类型。 Pandas提供了多种操作数据的函数和方法,例如处理缺失值、删除重复行、拆分和合并数据等。其中,处理缺失值是数据分析中常见的问题之一,Pandas提供了fillna和dropna两个函数来处理缺失值。fillna函数用于用指定的值或方法填充缺失值,而dropna函数可以删除包含缺失值的行或列。 除了数据预处理,Pandas还支持各种数据分析和绘图功能。例如,可以使用groupby函数按组分析数据,使用pivot_table函数创建数据透视表,使用merge函数合并数据集,还可以使用plot函数绘制各种图表,例如直方图、折线图和散点图等。 总的来说,Pandas是Python数据分析的重要工具之一,它提供了丰富的功能和易用的API,使得数据分析变得更加高效和方便。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值