机器学习-案例:流行电影统计

机器学习--案例:流行电影统计

现在我们有一组从2006年到2016年1000部最流行的电影数据

数据来源:https://www.kaggle.com/damianpanek/sunday-eda/data

  • 问题1:我们想知道这些电影数据中评分的平均分,导演的人数等信息,我们应该怎么获取?
  • 问题2:对于这一组电影数据,如果我们想rating,runtime的分布情况,应该如何呈现数据?
  • 问题3:对于这一组电影数据,如果我们希望统计电影分类(genre)的情况,应该如何处理数据?

实现

首先获取导入包,获取数据

python 复制代码
%matplotlib inline
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
python 复制代码
#文件的路径
path = "./IMDB-Movie-Data.csv"
#读取文件
df = pd.read_csv(path)

问题一:

我们想知道这些电影数据中评分的平均分,导演的人数等信息,我们应该怎么获取?

  • 得出评分的平均分

使用mean函数

python 复制代码
df["Rating"].mean()
  • 得出导演人数信息

求出唯一值,然后进行形状获取

python 复制代码
## 导演的人数
# df["Director"].unique().shape[0]
np.unique(df["Director"]).shape[0]

问题二:

对于这一组电影数据,如果我们想Rating,**Runtime (Minutes)**的分布情况,应该如何呈现数据?

  • 直接呈现,以直方图的形式

选择分数列数据,进行plot

python 复制代码
df["Rating"].plot(kind='hist',figsize=(20,8))
  • Rating进行分布展示

进行绘制直方图

python 复制代码
plt.figure(figsize=(20,8),dpi=80)
plt.hist(df["Rating"].values,bins=20)
plt.show()

修改刻度的间隔

python 复制代码
# 求出最大最小值
max_ = df["Rating"].max()
min_ = df["Rating"].min()
# 生成刻度列表
t1 = np.linspace(min_,max_,num=21)
# [ 1.9 2.255 2.61 2.965 3.32 3.675 4.03 4.385 4.74 5.095 5.45 5.805 6.16 6.515 6.87 7.225 7.58 7.935 8.29 8.645 9.]
# 修改刻度
plt.xticks(t1)
# 添加网格
plt.grid()
  • Runtime (Minutes)进行分布展示

进行绘制直方图

python 复制代码
plt.figure(figsize=(20,8),dpi=80)
plt.hist(df["Runtime (Minutes)"].values,bins=20)
plt.show()
  • 修改间隔
python 复制代码
# 求出最大最小值
max_ = df["Runtime (Minutes)"].max()
min_ = df["Runtime (Minutes)"].min()
# # 生成刻度列表
t1 = np.linspace(min_,max_,num=21)
# 修改刻度
plt.xticks(np.linspace(min_,max_,num=21))
# 添加网格
plt.grid()

问题三:对于这一组电影数据,如果我们希望统计电影分类**(genre)**的情况,应该如何处理数据?

  • 思路
    • 1、创建一个全为0的dataframe,列索引置为电影的分类,temp_df
    • 2、遍历每一部电影,temp_df中把分类出现的列的值置为1
    • 3、求和
  • 1、创建一个全为0的dataframe,列索引置为电影的分类,temp_df
python 复制代码
# 进行字符串分割
temp_list = [i.split(",") for i in df["Genre"]]
# 获取电影的分类

genre_list = np.unique([i for j in temp_list for i in j])
# 增加新的列
temp_df = pd.DataFrame(np.zeros([df.shape[0],genre_list.shape[0]]),columns=genre_list)

2、遍历每一部电影,temp_df中把分类出现的列的值置为1

python 复制代码
for i in range(1000):
    temp_df.loc[i,temp_list[i]]=1
print(temp_df.sum().sort_values())

3、求和,绘图

python 复制代码
temp_df.sum().sort_values(ascending=False).plot(kind="bar",figsize=(20,8),fontsize=20,colormap="cool")
相关推荐
Georgeviewer23 分钟前
商业落地评测|实体门店GEO优化性价比与服务体系深度复盘
大数据·人工智能
GuWenyue1 小时前
分不清AI Workflow与Agent?3个实战案例彻底讲透,做AI应用不再踩选型坑
人工智能
彩讯股份3006342 小时前
彩讯股份与心洲科技签署战略合作协议,共建企业级模型后训练能力
人工智能·科技
迅易科技2 小时前
从场景验证到Agent上线:迅易 × WorkBuddy如何帮助企业建设AI能力?
人工智能·ai·腾讯云
PNP Robotics2 小时前
多伦多大学机器人峰会|物理AI与具身智能落地新趋势
人工智能·深度学习·机器学习·机器人
GIR1232 小时前
官方出品 | 多通道土壤呼吸测量系统市场现状与十五五规划深度报告:行业分析+趋势预测全收录
大数据·人工智能·机器学习
绿算技术2 小时前
绿算技术亮相第十八届HPC AI中国年会,擘画AI基础设施全栈协同新图景
人工智能
Litluecat3 小时前
2026年7月22日科技热点新闻
人工智能·科技·新闻·每日·速览
To_OC3 小时前
别再傻傻分不清:Workflow 和 Agent 到底不是一回事
人工智能·agent·workflow
触底反弹3 小时前
🔥 2026 大模型选择指南:别再只看 Benchmark 了,这些维度才是关键!
人工智能·面试