影视剧数据分析与可视化

news2024/9/22 13:44:04

数据入口:影视剧数据集 - Heywhale.com

读取的数据包含750条条目,分布在6个列中。以下是数据的列和它们的数据类型:

  • 影视剧名称(object):表示影视剧的名称。
  • 影视剧标签(object):包含关于影视剧的标签信息,如类型、年份、主演等。
  • 弹幕数量(object):表示影视剧的弹幕数量,需要注意的是这一列的数据类型为 object,可能是因为数值前有单位(例如“万条弹幕”)。
  • 热度(int64):表示影视剧的热度,为一个整数数值。
  • 关键词描述(object):包含关于影视剧的关键词描述。
  • 高清图片网址(object):包含指向影视剧高清图片的网址。

一:数据预处理

数据概览如下:

首先读取数据,观察数据的大致情况:

import pandas as pd
# 读取上传的Excel文件
file_path = '影视剧信息.xlsx'
data_df = pd.read_excel(file_path)

data_df.info()

观测出“弹幕数量”有空值,所以可以去除含有空值的行:

# 删除含有空值的行
df1 = data_df.dropna(axis=0, how='any')
df1.info()

由于“弹幕数量”的单位存在不一致且“影视剧标签”含有多列,因此可以对这两列进行数据预处理。

由于大部分弹幕数量以万计,所以我们可以只提取含有“万条弹幕”的行,然后以“/”分隔符对影视剧标签进行分割:

# 筛选出“弹幕数量”中含有“万条弹幕”的行
df2 = df1[df1['弹幕数量'].str.contains('万条弹幕')]

# 提取“弹幕数量”中的数字
df2['弹幕数量'] = df2['弹幕数量'].str.replace('万条弹幕', '').astype(float)

# 分割"影视剧标签"列
df2[['影视剧类型', '年份', '主题', '演员']] = df2['影视剧标签'].str.split('/', expand=True)

随后分析2023年的影视剧并降序排列:

# 筛选年份为2023的行
filtered_df = df2[df2['年份'] == 2023]

# 按热度降序排列
sorted_df = filtered_df.sort_values(by='热度', ascending=False)

二:数据分析

1:影视剧主题分布

keyword_proportions = df2['影视剧类型'].value_counts(normalize=True)
keyword_proportions

得出比例较大的主题分布比例如下:

import matplotlib.pyplot as plt
# 设置 Matplotlib 的字体以支持中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

result_df = keyword_proportions.to_frame(name='关键词')
# 提取主题和关键词列
themes = result_df['主题']
keywords = result_df['关键词']

# 取前 10 行数据
top_10_data = result_df.head(10)

# 绘制柱形图
plt.bar(top_10_data['主题'], top_10_data['关键词'])
plt.xlabel('主题')
plt.ylabel('关键词')
plt.title('前 10 行主题关键词分布')
plt.xticks(rotation=90)
plt.show()

然后绘制前10行主题关键词分布图如下:

可以看出以“爱情”,“都市”,‘动作’,“真人秀”,“喜剧”为主题的影视剧占比较多。

2:弹幕数量与热度之间的相关性

from scipy.stats import pearsonr

# 提取“热度”和“弹幕数量”两列数据
heat = df2['热度']
bullet_count = df2['弹幕数量']

# 计算相关性
correlation, p_value = pearsonr(heat, bullet_count)

# 打印结果
print("相关性系数:", correlation)
print("p值:", p_value)

得出弹幕数量与热度的相关性系数与p值分别约为: 0.21和 4.47e-08。

这个结果表明 “热度” 和 “弹幕数量” 两列数据之间存在正相关关系,且相关性在统计上是显著的说明两者之间存在一定的正相关,但相关性不是很强。也就是说,一般情况下,热度较高的影视剧可能会有相对较多的弹幕数量,但这种关系并不是非常紧密。通常在统计学中,当 p 值小于某个显著性水平(如 0.05)时,我们认为结果具有统计学意义。这里的 p 值非常小,说明在给定的样本数据下,这种相关性具有一定的可靠性。

综上所述,这个结果说明 “热度” 和 “弹幕数量” 之间存在一定的正相关关系,但具体的关系强度还需要结合实际情况进行综合分析。

3:对关键词描述进行主题建模

import pandas as pd
from gensim import corpora
from gensim.models import LdaModel

# 提取"关键词描述"列
keywords = df2['关键词描述'].tolist()

# 数据预处理:分词、去除停用词等
stop_words = set(['的', '是', '在', '这', '一个', '有', '和', '了', '等'])  # 自定义停用词列表
texts = [[word for word in keyword.split() if word not in stop_words] for keyword in keywords]

# 创建词典
dictionary = corpora.Dictionary(texts)

# 构建文档-词频矩阵
corpus = [dictionary.doc2bow(text) for text in texts]

# 训练LDA模型
lda_model = LdaModel(corpus, num_topics=5, id2word=dictionary, passes=10)  # 设置主题数为5,可根据实际情况调整

# 打印主题
for topic_id, topic_words in lda_model.print_topics():
    print(f"Topic {topic_id}: {topic_words}")

在上述代码中,首先进行了数据的预处理,包括分词和去除停用词。然后,使corpora.Dictionary创建词典,将文本转换为词袋模型。接下来,使用LdaModel进行主题建模,设置了主题数和迭代次数。最后,打印出每个主题的相关词汇。主题建模结果如下:

Topic 0: 0.034*"白鹿周深惊喜加盟" + 0.034*"兰强夫妇双向养成" + 0.034*"先婚后爱双向攻略" + 0.034*"最终季有情人终成眷属" + 0.034*"硬核谢苗打爆不平" + 0.034*"铁三角探寻终极之谜" + 0.034*"黄景瑜李沁共赴荣光" + 0.034*"张一山关晓彤青梅竹马" + 0.034*"天造地“色”烟火色" + 0.034*"陈晓毛晓彤携手赴江湖"
Topic 1: 0.069*"IP沉浸式推理真人秀" + 0.035*"跨国追踪打击网络犯罪" + 0.035*"男团才艺竞演真人秀" + 0.035*"白敬亭宋轶先婚后爱" + 0.035*"倪家三代的离合悲欢" + 0.035*"草帽路飞伟大冒险" + 0.035*"黄景瑜杨祐宁正邪较量" + 0.035*"五哈旅行团再度启程" + 0.029*"夜市美食真人秀" + 0.029*"混沌之种逆转苍生"
Topic 2: 0.032*"岳云鹏严浩翔历9弥新" + 0.032*"三世同堂谱写人间烟火" + 0.032*"高能反转的爱情博弈" + 0.032*"沈腾贾玲组队爆笑回归" + 0.032*"任嘉伦白鹿绝美虐恋" + 0.032*"沈腾千玺身陷局中局" + 0.032*"罗云熙白鹿半糖蜜恋" + 0.032*"黄子韬孙红雷强势回归" + 0.032*"原班人马爆笑回归" + 0.032*"赵丽颖演绎明兰传奇"
Topic 3: 0.037*"阳光少年真实运营农场" + 0.037*"警弟匪兄黑白对决" + 0.037*"没心没肺,快乐加倍!" + 0.037*"双门洞胡同的温情故事" + 0.037*"邓超陈赫鹿晗人在囧途" + 0.037*"才冠绝伦" + 0.037*"麒麟才子" + 0.037*"郭涛梅婷还原时代爱情" + 0.037*"杨颖马天宇修仙情缘" + 0.037*"张译张颂文黑白较量"
Topic 4: 0.034*"任嘉伦白鹿相伴此生" + 0.034*"你的专属电子榨菜" + 0.034*"谢苗东北扫黑除恶" + 0.034*"够狠,够勇,够巅峰" + 0.034*"同福客栈趣事多" + 0.034*"baby周深解锁奇幻之旅" + 0.034*"陈建斌陈晓联袂缉凶" + 0.034*"郭麒麟嫁给宋轶" + 0.034*"鞠婧祎郭俊辰三界情缘" + 0.034*"真相只有一个"

根据这个结果,可以看出主题建模将 “关键词描述” 一列的内容分为了四个主题:

  1. Topic 0:主要涉及一些具体的影视剧情节和角色关系,如 “兰强夫妇双向养成”“先婚后爱双向攻略”“张一山关晓彤青梅竹马” 等。
  2. Topic 1:包含了一些与综艺节目和影视剧类型相关的关键词,如 “IP 沉浸式推理真人秀”“男团才艺竞演真人秀”“跨国追踪打击网络犯罪” 等。
  3. Topic 2:涵盖了一些关于演员、角色和剧情的描述,如 “岳云鹏严浩翔历 9 弥新”“三世同堂谱写人间烟火”“任嘉伦白鹿绝美虐恋” 等。
  4. Topic 3:包括了一些与影视剧的整体特点和氛围相关的词汇,如 “阳光少年真实运营农场”“警弟匪兄黑白对决”“没心没肺,快乐加倍!” 等。
  5. Topic 4:涉及了一些具体的演员、角色和剧情元素,如 “任嘉伦白鹿相伴此生”“你的专属电子榨菜”“谢苗东北扫黑除恶” 等。

总的来说,这个主题建模的结果展示了 “关键词描述” 一列中存在的一些潜在主题和相关词汇的分布情况,可以帮助我们更好地理解这些关键词所代表的内容和意义。

想要探索多元化的数据分析视角,可以关注之前发布的相关内容。

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

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

相关文章

<<编码>> 第 12 章 二进制加法器--全加器 示例电路

全加器的内部构成 info::操作说明 鼠标单击逻辑输入切换 0|1 状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/code-hlchs-examples/assets/circuit/code-hlchs-ch12-05-full-adder-internal.txt 全加器 info::操作说明 鼠标…

机器学习实战21-基于XGBoost算法实现糖尿病数据集的分类预测模型及应用

大家好,我是微学AI,今天给大家介绍一下机器学习实战21-基于XGBoost算法实现糖尿病数据集的分类预测模型及应用。首先阐述了 XGBoost 算法的数学原理及公式,为模型构建提供理论基础。接着利用 kaggle 平台的糖尿病数据集,通过详细的…

【C++】queue和priority_queue

个人主页~ queue和priority_queue 一、queue的介绍和使用1、queue的介绍2、queue的使用3、queue的模拟实现 二、priority_queue的介绍和使用1、priority_queue的介绍2、priority_queue的使用3、priority_queue的模拟实现 三、仿函数1、仿函数的特征2、仿函数的使用 ex、有关于l…

完结马哥教育SRE课程--基础篇

文章目录 一、Linux基础入门1.Linux基本架构2.什么是shell3.命令执行过程4.Shell中的两类命令5.常见命令6.输出信息echo7.tab键补全8.获取帮助 二、文件管理和IO重定向1.文件系统目录结构2.文件系统目录功能3.linux下的文件类型4.文件操作命令5.文件状态stat6.确定文件内容7.文…

【webpack4系列】webpack基础用法(二)

文章目录 entryoutputloaderpluginmode前端构建基础配置关联HTML插件html-webpack-plugin构建 CSS 解析 ES6和React JSX解析 ES6解析 React JSX 解析CSS、Less和Sass解析CSS解析Less解析sass 解析图片和字体资源解析:解析图片资源解析:解析字体资源解析&…

系统 IO

"裸奔"层次:不带操作系统的编程 APP(应用程序) -------------------------------- Hardware(硬件) 特点:简单,应用程序直接操作硬件(寄存器) 缺点: 1. 搞应用开发的必须要了解硬件的实现细节,能够看懂原理图…

Depth靶机详解

靶机下载地址 https://www.vulnhub.com/entry/depth-1,213/ 主机发现 arp-scan -l 端口扫描 nmap -sV -A -T4 192.168.229.156 端口利用 http://192.168.229.156:8080/ 目录扫描 dirb "http://192.168.229.156:8080" dirsearch -u "http://192.168.229.15…

UDP_SOCKET编程实现

文章目录 socket编程接口认识struct sockaddr类 编写一个server服务Client代码查看启动结果代码修正1.获取内核分配给客户端的信息2.修正不匹配ip不能访问的问题 不同机器之间的通信利用xftp将udp_client传给wsl的ubuntu机器进行演示现在模拟在windows下的udp_client代码: 对方…

松材线虫多光谱数据集

松材线虫多光谱数据集 无人机:dji mavic3 mutispectral 波段:red green rededge nir rgb 面积:39.05平方公里 数据:rgb影像,四个单波段影像,NDVI GNDVI LCI NDRE OSAVI 5个指数图 分辨率:0.03&a…

【智路】智路OS 欢迎来到智路OS路侧操作系统开发手册

https://airos-edge.readthedocs.io/zh/latest/ 欢迎来到智路OS路侧操作系统开发手册 智路OS 是一套完整的软件和服务开放系统, 由路侧操作系统(airos-edge),车端(airos-vehicle)和云端开发者平台共同构成…

【Spring Boot】SpringBoot自动装配-Import

目录 一、前言二、 定义三、使用说明3.1 创建项目3.1.1 导入依赖3.1.2 创建User类 3.2 测试导入Bean3.2.1 修改启动类 3.3 测试导入配置类3.3.1 创建UserConfig类3.3.2 修改启动类 3.4 测试导入ImportSelector3.4.1 创建UseImportSelector类3.4.2 修改启动类3.4.3 启动测试 3.5…

Python 二维码(QR码)生成器:使用python-qrcode简化条码创建

在数字时代,QR码已成为快速信息共享和数据传输的必备工具。无论是用于市场营销活动、活动签到,还是仅仅分享Wi-Fi凭证,QR码都提供了一种方便的方式来打包和扫描访问信息。今天,我们将探索python-qrcode库,这是一个强大…

Golang | Leetcode Golang题解之第409题最长回文串

题目&#xff1a; 题解&#xff1a; func longestPalindrome(s string) int {mp : map[byte]int{}for i : 0; i < len(s); i {mp[s[i]]}res : 0for _, v : range mp {if v&1 1 {res v - 1} else {res v}}if res<len(s) {res}return res }

【MyBatis精讲】从入门到精通的详细指南:简化Java持久层操作的艺术

文章目录 【MyBatis精讲】从入门到精通的详细指南&#xff1a;简化Java持久层操作的艺术1.mybatis快速入门1.1创建步骤1.2mapper代理开发模式 2.mybatis增删改查2.1查询所有数据2.2 id查询数据2.3插入数据2.4修改数据2.5删除数据2.6 mybatis多条件查询2.7 mybatis动态条件查询 …

HTML标签优先级

HTML&#xff08;HyperText Markup Language&#xff09;标签的位置对于页面的结构、性能以及可维护性至关重要。合理安排标签的位置不仅有助于提高网页的加载速度&#xff0c;还能使得代码更加清晰易懂。以下是一些关于HTML标签放置的基本规则和建议&#xff1a; 1. 文档类型…

web安卓逆向之必学HTML基础知识

文章目录 HTML基础知识一、HTML的介绍1. HTML定义2. HTML 的作用1. 定义网页的结构2. 实现超文本链接3. 支持多媒体内容4. 提供表单交互5. 提高网页的可访问性和 SEO 3. 小结 二、html的基本结构1. HTML 基本结构2. HTML 基本结构的详细介绍3. 教学案例4. 补充知识5. 小结 三、…

【网络通信基础与实践第三讲】传输层协议概述包括UDP协议和TCP协议

一、进程间的通信 通信的两端应当是两个主机中的应用进程&#xff0c;也就是说&#xff0c;端到端的通信是应用进程之间的通信 运输层有一个很重要的功能就是复用和分用&#xff0c;复用是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据&#xff0c;分用是指接…

C++前后缀分解

相关知识点 C算法与数据结构 打开打包代码的方法兼述单元测试 这个算法很容易想到&#xff0c;学习了本文后&#xff0c;可以更快得想到。 前后缀分解 分治法的一种&#xff0c;将数组和字符串&#xff0c;拆分成前缀和后缀。字符串(数组&#xff09;的前缀是字符串的前i个元…

QT模型视图结构2

文章目录 Qt 模型视图结构——模型类(二)1.基本概念1.1.模型的基本结构1.2.模型索引1.3.行号和列号1.4.父项1.5.项的角色 Qt 模型视图结构——模型类(二) ​ 模型/视图结构是一种将数据存储和界面展示分离的编程方法。模型存储数据&#xff0c;视图组件显示模型中的数据&#…

ChatGPT提示词-中文版(awesome-chatgpt-prompts中文版)

原是Github上110.6K星的项目&#xff1a;GitHub - f/awesome-chatgpt-prompts: This repo includes ChatGPT prompt curation to use ChatGPT better. 我翻译成了中文需要自提 我用夸克网盘分享了「Chat GPT提示词.csv」&#xff0c;点击链接即可保存。打开「夸克APP」在线查看…