用python做数据处理流程大致可以分成以下三个部分:

一、数据的获取:一般可以有公开的数据集、网络爬虫、自己整理等方式。

二、数据的处理:包括数据的预处理、数据的查找/筛选/排序/统计等操作。

三、数据的展示:包括图、表等可视化呈现。

下面用一个电影评论的关键词云图制作为例,来演示这个数据处理的全流程。在这个例子中,我们将用到以下工具包:

import pandas as pd # 数据处理工具pandas

import sqlite3 # sql数据库工具

import jieba # 文本分词工具jieba

import pyecharts as pec # 数据可视化工具pyecharts

from pyecharts.charts import WordCloud # 导入WordCloud词云图模块

from pyecharts.render import make_snapshot # 导入输出图片工具

from snapshot_selenium import snapshot # 使用snapshot-selenium 渲染图片

一、数据的获取。

我们可以下载到豆瓣的数据库,这个douban_comment_data.db数据库中包含三个表:comment、movie、movie_chinese。具体详见博文通过movie_id来查询数据库获取电影名字和平均得分我们

我们使用sql语句来读取所需要的数据表存放在comment_data中。可以参考博文python对sql数据库文件的基本操作。

conn = sqlite3.connect('data/douban_comment_data.db')

comment_data = pd.read_sql_query('select * from comment;',conn)

二、数据的处理

这里我们编写了一个函数get_comment_key_words(movie_id,count)来对数据库中的数据进行处理,参数包括电影的id(movie_id)和需要获得的热门关键的数量count。我们这里采用了pandas技术中的筛选技术(参考博文python中DataFrame数据的筛选)

字符串的拼接技术(参考博文使用“+”完成python中的字符串拼接),jieba分词技术(参考博文:基于jieba模块的数据分析)

等等。

def get_comment_key_words(movie_id,count):

comment_list = comment_data[comment_data['MOVIEID']==movie_id]['CONTENT']

comment_str = ""

for comment in comment_list:

comment_str += comment + '\n'

seg_list = list(jieba.cut(comment_str))

keywords_counts = pd.Series(seg_list)

keywords_counts = keywords_counts[keywords_counts.str.len()>1]#注意这里需要先筛选再value_count()

filtered_index = ~keywords_counts.str.contains(filter_condition)

keywords_counts = keywords_counts[filtered_index]

keywords_counts = keywords_counts.value_counts()

keywords_counts = keywords_counts[:count]

return keywords_counts

注意我们这里在进行过滤处理的时候,用到了FILTER_WORDS的技术,原理是把一些高频的无意义的词过滤掉。我们首先需要建立一个列表,里面存放着一系列的待过滤词组。然后使用字符串的.join()方法把这些过滤词组用或运算符“|”把他们联结起来,成为一个或表达式,然后使用.str.contains()方法获取满足这些条件的数据索引值,对其求反就可以获得过滤后的索引了。

FILTER_WORDS = ['真个','那里','不知','两个','这么','那么','怎么','如果',

'是','的','这个','一个','这种','时候','什么','\n','一部','这部','没有',

'还有','因为','只见','甚么','原来','不敢','如何','不曾','闻言','那怪','一声',

'出来','...','却说','片子','可以','不得','无法','这样','可能','最后','我们','东西',

'现在','那个','所以','一直','也许','电影','它们','不能','这里','今日',"觉得",'is','感觉']

filter_condition = '|'.join(FILTER_WORDS)

filtered_index = ~keywords_counts.str.contains(filter_condition)

keywords_counts = keywords_counts[filtered_index]

要注意的是,我们需要在完成过滤操作之后,再进行value_count操作(参考博文使用data.value_counts()方法对Series数组中的重复元素进行统计),然后通过切片的方法去除前count个热门词汇就完成了我们需要的数据的提取。

三、数据的可视化。

这里我们采用词云图图的方式来进行展示,原理参考博文基于pyechart的词云可视化展示。默认会生成html在浏览器中才能看到,我们采用make_snapshot技术直接生成png图片(参考博文python中使用pyecharts直接绘制png图片)

我们最后运行代码,可以在工程目录下得到png文件,打开之后,就得到了movie_id为"1292052",也就是《肖申克的救赎》这部电影的Top30热门词汇。

梧桐雪

发布了151 篇原创文章 · 获赞 6 · 访问量 4005

私信

关注

标签:comment,python,movie,云图,豆瓣,keywords,import,counts,data

来源: https://blog.csdn.net/weixin_41855010/article/details/104463165

python数据分析论文报告电影_一个实战案例带你走完python数据分析全流程:豆瓣电影评论的关键词云图制作...相关推荐

  1. 一个实战案例带你走完python数据分析全流程:豆瓣电影评论的关键词云图制作

    用python做数据处理流程大致可以分成以下三个部分: 一.数据的获取:一般可以有公开的数据集.网络爬虫.自己整理等方式. 二.数据的处理:包括数据的预处理.数据的查找/筛选/排序/统计等操作. 三. ...

  2. Python实战案例:旅游方面博文的数据分析

    Python实战案例:旅游方面博文的数据分析 一.旅游方面博文数据展示 数据分析的出现便利了每个人,企业,竞争者.在以前的时候,如果想要了解市场的动向,就设计了调查问卷或者现场采访的方式,以至于被很多 ...

  3. Methodot低代码电影票房管理系统实战案例(二):前端低代码搭建系统后台

    本次系统后台实战将使用Methodot应用工厂中的前端低代码组件完成搭建,无需注册域名.购买云服务器.虚拟机等,可在Methodot云端一体化完成开发.交付.访问.运维,3s即可部署至线上 免运维,在 ...

  4. python爬虫项目实训报告背景_项目实战 | Python爬虫概述与实践(一)

    目录 1 定义 2 分类 3 基本流程 4总结 1 定义 爬虫,又称为网络蜘蛛.网络机器人等,简单来说,就是请求网站并提取数据的自动化程序,可以代替人工在互联网上收集数据. 2 分类 通用网络爬虫 搜 ...

  5. python人工智能方向面试准备_人工智能实战就业(面试)学习路线图

    这个项目是干什么的? 整理这个项目的初衷是方便同学们快速开启人工智能自学计划,在学习过程中少走弯路用最快的效率入门Ai并开始实战项目, 提供了近200个Ai实战案例和项目,这些并不是网上搜集来的,而是 ...

  6. gis可达性分析步骤_这个 Python 项目厉害了!多个实战案例教你分析时空数据处理...

    大数据时代到来,随着数据的逐步开放,数据工作者们或多或少都要接触到时空数据.在处理时空数据的时候,你不仅要数据处理,还需要会GIS,最重要的它是一门艺术,要用你的审美,要出很好看的可视化图! 以前,我 ...

  7. python社区发现_这个 Python 项目厉害了!多个实战案例教你分析时空数据处理

    大数据时代到来,随着数据的逐步开放,数据工作者们或多或少都要接触到时空数据.在处理时空数据的时候,你不仅要数据处理,还需要会GIS,最重要的它是一门艺术,要用你的审美,要出很好看的可视化图! 以前,我 ...

  8. 项目介绍star原理_这个 Python 项目厉害了!多个实战案例教你分析时空数据处理...

    大数据时代到来,随着数据的逐步开放,数据工作者们或多或少都要接触到时空数据.在处理时空数据的时候,你不仅要数据处理,还需要会GIS,最重要的它是一门艺术,要用你的审美,要出很好看的可视化图! 以前,我 ...

  9. python收集论文数据造假_现在的学术论文里存在数据造假的情况吗?

    曾有人通过数据造假,在最难忽悠的物理学界骗倒了一众学术大牛,甚至在<科学>.<自然>两大权威期刊上频频发表文章. 这个数据造假的高手就是德国的物理学家舍恩. 我们把镜头拉回到 ...

  10. python中setup什么意思_一个关于python3中setup.py小概念

    一个关于setup.py小概念 关于 python setup.py  bdist python setup.py  sdist 两者的区别 sdist  指的是source dist 即源码发布,带 ...

最新文章

  1. ios 开发中 动态库 与静态库的区别
  2. JQuery插件:ScrollTo平滑滚动到页面指定位置
  3. doT.js灵活运用之嵌入使用
  4. python 中国社区_python
  5. SPI分配传感器的寄存器
  6. jQuery.extend() 使用语法详解
  7. Linux的简介与虚拟机的管理
  8. 对于计算机网络技术的课程,计算机网络技术课程剖析.doc
  9. python的pygame库使用方法_[宜配屋]听图阁
  10. 如何利用python将mp4文件转换为gif文件 + 代码分享 另附在线转换网址
  11. 准确率(accuracy),精确率(Precision),召回率(Recall)和F1-Measure
  12. Java Web开发学习手册_Java Web实战开发完全学习手册
  13. 服务器雷达信号处理,雷达信号处理的信息几何方法
  14. 计算机网络基础知识 - 物理层
  15. 毕业后,重装电脑系统,我的资料备份
  16. 决策树算法的Python实现—基于金融场景实操
  17. ssh无密码登录原理和配置方法
  18. java项目 科学计算器_结对项目-增强型科学计算器
  19. android对cpu硬件要求,Android手机想用64位处理器?系统阻碍
  20. 计算机桌面来回闪烁,电脑进去桌面就一直闪

热门文章

  1. 如何将成绩用C语言分,如何利用C语言实现简单的分数化简
  2. 如何在电脑端安装哔哩哔哩?
  3. 在Delphi程序中访问报表对象
  4. 某程序员披露华为外包员工现状:工作氛围好,没有歧视,但转正后也不算正式员工?...
  5. 仅此一文,看懂二极管的所有基础知识点
  6. springboot项目+多个启动类部署到linux服务器上
  7. 微信网页开发(3)--微信网页授权
  8. oracle中两个日期相减
  9. 如何去掉图片上的logo
  10. 新手如何做抖音直播带货?新号如何快速获取直播推荐流量?