news 2026/4/23 13:02:27

导入自己的观影记录(电影名,评分,时长),统计高分电影(8分以上),推荐同类型电影。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
导入自己的观影记录(电影名,评分,时长),统计高分电影(8分以上),推荐同类型电影。

为你完整设计一个观影记录分析与推荐系统,结合大数据与智能管理课程的思想,从场景到代码、从模块到文档,全部覆盖。

1. 实际应用场景 & 痛点引入

场景

你是一名电影爱好者,长期在豆瓣、IMDb 等平台记录观影数据(电影名、评分、时长)。你想:

- 快速找出自己打过 8 分以上 的高分电影。

- 根据高分电影的类型,推荐同类型的其他高分影片。

痛点

- 手动筛选高分电影耗时。

- 没有自动化的推荐机制,需要自己去搜索同类型电影。

- 缺乏数据驱动的电影偏好分析。

2. 核心逻辑讲解

1. 数据获取

- 输入观影记录(CSV/Excel),字段包括:

"title"(电影名)、

"rating"(评分)、

"duration"(时长)、

"genre"(类型,可选,若没有则需外部数据源补充)。

2. 数据清洗

- 确保评分为数值类型,去除无效数据。

3. 高分电影筛选

- 筛选评分 ≥ 8.0 的电影。

4. 推荐同类型电影

- 如果有类型信息,则从外部电影数据集(如 IMDb Top 250 或 TMDB API)中匹配同类型且评分高的电影。

- 这里为了演示,我们用一个内置的“同类型高分电影库”模拟推荐。

5. 输出结果

- 打印高分电影列表。

- 打印推荐电影列表。

- 可选:保存结果到 CSV。

3. 代码实现(模块化 + 注释)

目录结构

movie_analysis/

├── data/

│ └── my_movies.csv

├── output/

├── analysis.py

├── utils.py

├── movie_db.py

├── README.md

└── requirements.txt

"requirements.txt"

pandas>=1.5.0

"utils.py"(工具函数)

import pandas as pd

def load_movie_data(file_path):

"""

加载观影记录 CSV 文件

:param file_path: CSV 文件路径

:return: DataFrame

"""

df = pd.read_csv(file_path)

# 确保评分为数值类型

df['rating'] = pd.to_numeric(df['rating'], errors='coerce')

return df

def clean_data(df):

"""

清洗数据:删除评分为空的行

:param df: DataFrame

:return: 清洗后的 DataFrame

"""

return df.dropna(subset=['rating'])

"movie_db.py"(模拟电影数据库)

# 模拟同类型高分电影库

SIMILAR_MOVIES = {

"剧情": [

{"title": "肖申克的救赎", "rating": 9.7, "duration": 142},

{"title": "阿甘正传", "rating": 9.5, "duration": 142},

],

"科幻": [

{"title": "星际穿越", "rating": 9.3, "duration": 169},

{"title": "盗梦空间", "rating": 9.3, "duration": 148},

],

"动作": [

{"title": "黑暗骑士", "rating": 9.2, "duration": 152},

{"title": "速度与激情7", "rating": 8.5, "duration": 137},

]

}

def get_similar_high_rated_movies(genre, limit=2):

"""

根据类型获取同类型高分电影

:param genre: 电影类型

:param limit: 返回数量

:return: 列表

"""

return SIMILAR_MOVIES.get(genre, [])[:limit]

"analysis.py"(主分析逻辑)

import pandas as pd

from utils import load_movie_data, clean_data

from movie_db import get_similar_high_rated_movies

def analyze_movies(file_path):

# 1. 加载数据

df = load_movie_data(file_path)

df = clean_data(df)

# 2. 筛选高分电影(≥8分)

high_rated = df[df['rating'] >= 8.0]

print("你的高分电影(≥8分):")

print(high_rated[['title', 'rating', 'duration']])

# 3. 推荐同类型电影

recommended = []

for _, row in high_rated.iterrows():

genre = row.get('genre', None)

if genre:

similar = get_similar_high_rated_movies(genre)

for movie in similar:

movie['source_genre'] = genre

recommended.append(movie)

# 去重

unique_recommended = {m['title']: m for m in recommended}.values()

print("\n推荐的同类型高分电影:")

for m in unique_recommended:

print(f"{m['title']} ({m['source_genre']}) - 评分: {m['rating']}")

# 4. 保存结果

high_rated.to_csv('../output/high_rated_movies.csv', index=False)

pd.DataFrame(unique_recommended).to_csv('../output/recommended_movies.csv', index=False)

print("\n结果已保存到 output/ 目录")

if __name__ == "__main__":

analyze_movies('../data/my_movies.csv')

4.

"README.md"

# 观影记录分析与推荐系统

## 功能

- 导入观影记录(电影名、评分、时长、类型)

- 筛选高分电影(≥8分)

- 根据类型推荐同类型高分电影

- 保存结果到 CSV

## 环境依赖

- Python 3.8+

- pandas

## 安装

bash

pip install -r requirements.txt

## 使用

1. 将观影记录放入 `data/my_movies.csv`,格式如下:

title,rating,duration,genre

肖申克的救赎,9.7,142,剧情

阿甘正传,9.5,142,剧情

星际穿越,9.3,169,科幻

...

2. 运行分析脚本:

bash

python analysis.py

3. 查看终端输出的高分电影和推荐电影,并在 `output/` 目录查看保存的 CSV 文件。

## 作者

全栈开发工程师 & 技术布道者

5. 核心知识点卡片

知识点 说明

Pandas 数据加载

"pd.read_csv()" 读取 CSV,

"to_numeric" 转换类型

数据清洗

"dropna()" 删除缺失值,保证分析准确性

条件筛选

"df[df['rating'] >= 8.0]" 筛选高分电影

字典数据结构 用字典存储同类型电影库

去重技巧

"{m['title']: m for m in list}" 字典推导式去重

模块化设计 工具函数、数据库模拟、主分析逻辑分离

6. 总结

本项目展示了如何用 Python 快速构建一个观影记录分析与推荐系统,结合了:

- 大数据处理思想(数据清洗、条件筛选)

- 智能管理应用(个性化推荐)

- 全栈开发实践(模块化、文档化、可扩展性)

通过这个小项目,你可以:

- 掌握 Pandas 数据处理与分析的核心方法

- 学会用字典和列表构建简单推荐引擎

- 理解如何将个人数据转化为可行动的洞察

- 为后续接入真实电影 API(如 TMDB)、Web 前端、可视化大屏打下基础

如果你需要,可以生成一个示例 CSV 观影记录文件,这样你可以直接运行代码看到效果

利用AI高效解决实际问题,如果你觉得这个工具好用,欢迎关注我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 14:32:59

失业程序员找工作 day01

这是小红书上一位上海的Java程序员失业想转行的分享贴。 Java开发的就业市场正在经历结构性调整,竞争日益激烈 传统纯业务开发岗位(如仅完成增删改查业务的后端工程师)的需求,特别是入门级岗位,正显著萎缩。随着企业…

作者头像 李华
网站建设 2026/4/23 12:58:54

EasyGBS打造能源矿山全场景智能监控模式

能源矿山作为国家重要的基础产业,其安全生产一直是社会关注的焦点。随着智能化、数字化转型浪潮的推进,传统的视频监控系统已难以满足现代化矿山安全生产的管理需求。在这一背景下,EasyGBS算法算力平台正以其强大的视频融合能力和智能分析技术…

作者头像 李华
网站建设 2026/3/12 21:42:51

游戏测试有前途吗?游戏测试和软件测试有区别吗?

最近很多同学问我做游戏测试有前途吗? 如果你真的很喜欢游戏,每天不打游戏你浑身难受,其实做游戏测试也算是一个好的选择! 游戏测试和软件测试的区别是什么? 现在游戏测试的待遇比以前好很多,资深的游戏…

作者头像 李华
网站建设 2026/4/19 6:08:42

收藏!大模型岗位全景解析:小白程序员转型必看指南

近两年来,大模型技术的爆发式增长彻底席卷科技领域,无论是深耕Java、C的后端开发者、专注交互体验的前端工程师,还是深耕数据处理、架构设计的技术从业者,都纷纷将目光聚焦于大模型赛道,掀起了新一轮技术深耕与跨界转型…

作者头像 李华
网站建设 2026/4/22 13:34:20

python基于django的老年人健康养生系统的设计与实现

目录 摘要 关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 摘要 随着人口老龄化趋势加剧,老年人的健康管理需求日益突出。传统健康管理方式存在信息分散、效率低下等问…

作者头像 李华