当前位置: 首页 > news >正文

Pandas 1.5 数据分析实战:电影评分数据集 6 项统计指标计算与可视化

Pandas 1.5 电影评分数据分析实战:从基础统计到可视化洞察

电影评分数据是推荐系统、用户行为分析和市场研究的重要基础。本文将带您使用Pandas 1.5完成一个完整的电影评分数据分析项目,涵盖数据加载、6项核心统计指标计算以及3种关键可视化图表制作。通过这个实战案例,您不仅能掌握Pandas的最新特性,还能学会如何将原始数据转化为有价值的业务洞察。

1. 环境准备与数据加载

在开始分析之前,我们需要搭建合适的工作环境并加载数据。推荐使用Jupyter Notebook作为开发环境,它能够直观地展示数据分析过程和结果。

首先安装必要的Python库:

pip install pandas==1.5.0 matplotlib seaborn jupyter

典型的电影评分数据集通常包含以下字段:

  • user_id: 用户唯一标识
  • movie_id: 电影唯一标识
  • rating: 评分值(如1-5星)
  • timestamp: 评分时间戳

假设我们有一个名为"movie_ratings.csv"的数据文件,使用Pandas加载数据:

import pandas as pd # 加载数据集 df = pd.read_csv('movie_ratings.csv', names=['user', 'movie', 'rating', 'timestamp'], header=0) # 查看前5行数据 print(df.head())

数据加载后,我们可以进行初步检查:

# 检查数据类型和缺失值 print(df.info()) # 描述性统计 print(df.describe())

提示:在实际项目中,建议使用pd.to_datetime()将timestamp列转换为datetime类型,便于时间序列分析。

2. 基础统计分析

了解数据集的基本特征是任何分析工作的第一步。我们将计算6个核心统计指标:

  1. 用户数
  2. 电影数
  3. 评分数目
  4. 平均评分
  5. 最高评分
  6. 最低评分

使用Pandas 1.5的新特性进行计算:

def basic_statistics(data): stats = { '用户数': data['user'].nunique(), '电影数': data['movie'].nunique(), '评分数目': len(data), '平均评分': data['rating'].mean(), '最高评分': data['rating'].max(), '最低评分': data['rating'].min() } return pd.Series(stats) basic_stats = basic_statistics(df) print(basic_stats)

Pandas 1.5在性能上的改进使得这些聚合计算更加高效,特别是对于大型数据集。我们可以进一步分析评分的分布:

# 评分分布统计 rating_dist = df['rating'].value_counts().sort_index() print(rating_dist)

3. 深入数据分析

基础统计只能提供数据的概览,深入分析能揭示更有价值的模式。我们将从用户和电影两个维度进行深入分析。

3.1 用户评分分析

计算每个用户的平均评分:

user_avg_rating = df.groupby('user')['rating'].mean().reset_index(name='avg_rating') user_avg_rating = user_avg_rating.sort_values('avg_rating', ascending=False) print(user_avg_rating.head(10))

3.2 电影评分分析

同样地,我们可以分析电影的评分情况:

movie_avg_rating = df.groupby('movie')['rating'].mean().reset_index(name='avg_rating') movie_avg_rating = movie_avg_rating.sort_values('avg_rating', ascending=False) print(movie_avg_rating.head(10))

3.3 评分时间分析

将时间戳转换为日期后,我们可以分析评分的时间模式:

df['date'] = pd.to_datetime(df['timestamp'], unit='s').dt.date daily_ratings = df.groupby('date').size() print(daily_ratings.head())

4. 数据可视化

可视化是理解数据的关键步骤。我们将创建3种核心图表来展示分析结果。

4.1 评分分布直方图

使用Matplotlib绘制评分分布:

import matplotlib.pyplot as plt import seaborn as sns plt.figure(figsize=(10, 6)) sns.histplot(data=df, x='rating', bins=5, kde=True) plt.title('电影评分分布') plt.xlabel('评分') plt.ylabel('数量') plt.show()

4.2 用户/电影平均评分Top10条形图

展示评分最高的用户和电影:

# 用户平均评分Top10 plt.figure(figsize=(12, 6)) sns.barplot(data=user_avg_rating.head(10), x='user', y='avg_rating') plt.title('平均评分最高的10位用户') plt.ylim(0, 5) plt.show() # 电影平均评分Top10 plt.figure(figsize=(12, 6)) sns.barplot(data=movie_avg_rating.head(10), x='movie', y='avg_rating') plt.title('平均评分最高的10部电影') plt.ylim(0, 5) plt.show()

4.3 评分时间趋势图

分析评分数量随时间的变化:

plt.figure(figsize=(12, 6)) daily_ratings.plot() plt.title('每日评分数量变化') plt.xlabel('日期') plt.ylabel('评分数量') plt.grid(True) plt.show()

5. 高级分析与技巧

除了基础分析外,Pandas 1.5还提供了一些高级功能可以帮助我们更深入地理解数据。

5.1 评分偏差分析

计算每部电影的评分标准差,了解评分的离散程度:

movie_rating_std = df.groupby('movie')['rating'].std().reset_index(name='rating_std') movie_stats = movie_avg_rating.merge(movie_rating_std, on='movie') print(movie_stats.sort_values('rating_std', ascending=False).head())

5.2 用户活跃度分析

识别最活跃的用户:

user_activity = df['user'].value_counts().reset_index() user_activity.columns = ['user', 'rating_count'] print(user_activity.sort_values('rating_count', ascending=False).head(10))

5.3 电影流行度与评分关系

探索电影受欢迎程度与其评分的关系:

movie_popularity = df['movie'].value_counts().reset_index() movie_popularity.columns = ['movie', 'popularity'] movie_stats = movie_stats.merge(movie_popularity, on='movie') plt.figure(figsize=(10, 6)) sns.scatterplot(data=movie_stats, x='popularity', y='avg_rating', alpha=0.6) plt.title('电影流行度与平均评分关系') plt.show()

6. 实际应用与扩展

掌握了这些分析技术后,我们可以将其应用于实际业务场景:

  • 推荐系统优化:基于用户评分模式改进推荐算法
  • 异常检测:识别评分异常的电影或用户
  • 市场分析:了解不同类型电影的表现差异
  • 用户分群:根据评分行为对用户进行分群

Pandas 1.5在性能上的改进特别适合处理大规模评分数据。例如,它的内存使用更高效,对于包含数百万评分的数据库也能流畅处理。

# 示例:使用Pandas 1.5的eval()进行高效计算 result = pd.eval("df['rating'] > 3") print(result.mean()) # 评分高于3的比例

电影评分数据分析是一个持续的过程。随着新评分的不断加入,定期更新分析结果可以帮助我们捕捉最新的趋势和模式。

http://www.jsqmd.com/news/1141212/

相关文章:

  • 端侧模型冷启动:模型没跑起来,用户先等烦了
  • 2026年实测AI写作辅助网站榜单(高分定稿版)
  • 3分钟完成BetterNCM插件安装:Windows用户的终极解决方案
  • 多Agent协作编排引擎:工具链调度与任务分发的后端设计
  • 小白程序员必懂的大模型核心概念:Prompt、Skill、MCP、Agent全解析
  • 抖音电商宣布:3公斤内退换货全免费,商家保费不涨!电商售后大战再升级
  • 大模型推理提速 3 倍的秘密武器:DeepSeek 开源投机解码全栈框架 DeepSpec
  • OpenCore Legacy Patcher终极指南:让旧款Mac免费升级最新macOS系统
  • Retinex 算法原理与 PyTorch 实现:从 SSR 到 MSRCR 的 3 个关键改进
  • HTML5+CSS3+JS小实例:极简番茄钟专注计时器
  • 思源黑体TTF构建工具:打造专业级免费商用字体
  • ks-vaudit深度解析:开源屏幕录制审计软件的核心功能与应用场景
  • TensorRT Execution Provider
  • 广州宠物牙科哪家值得选
  • python dict 实现竟藏这么多赋值引用实例,速来瞧
  • 零碳园区产业园管理系统的全场景源网荷储氢协同调度功能的应用场景有哪些?
  • 本地部署AI生图与视频生成:从扩散模型原理到实战应用
  • iOS越狱完全指南:5分钟了解如何解锁iPhone隐藏功能
  • 收藏!互联网产品经理转AI的8大行业方向深度解析,小白也能看懂
  • Sunshine游戏串流架构深度解析:如何构建企业级自托管云游戏平台?
  • 内链外链核心区别 | 让百度蜘蛛抓取频次提升5倍的逻辑
  • AD7490与TM4C129ENCZAD在工业信号采集中的优化实践
  • OpenCore Legacy Patcher终极指南:如何让老旧Mac免费升级最新macOS系统
  • 2026年适合中小团队的企业网盘有哪些?8款文件管理工具盘点
  • 大数据毕业设计最全选题答疑
  • 老Mac升级新系统:OpenCore Legacy Patcher一键解决方案
  • 太原聚氨酯地坪漆厂家哪家好
  • 智能恒温器技术解析:从原理到实践应用
  • BetterNCM安装器完全指南:3分钟快速部署网易云插件生态
  • Bilibili视频下载自动化解决方案:架构优化与集成化内容管理