作者:来源于读者投稿
出品:Python数据之道
本文中使用的数据是一份美食APP的数据,用来进行数据分析、处理和可视化图形的制作,主要包含内容:
数据的多种处理操作
基于
pyecharts
和plotly
的饼图和柱状图制作基于
Wordcloud
和pyecharts
的词云图制作利用
jieba
分词,和去停用词后的词云图改进
本文数据文件等素材获取方式见文末。
— 01 —
导入库
本文中使用的库比较多,尤其是 pyecharts
相关的,库包含:
数据处理相关
pyecharts相关
词云图相关
plotly相关
如果没有装,需要先装下需要的库才能运行
# 数据处理相关
import pandas as pd
import numpy as np
from datetime import datetime
# 在顶部声明 CurrentConfig.ONLINE_HOST
from pyecharts.globals import CurrentConfig, OnlineHostType, NotebookType
# CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
# OnlineHostType.NOTEBOOK_HOST 默认值为 http://localhost:8888
from pyecharts.charts import Page, Bar, Line, Pie
from pyecharts import options as opts
# 分词
import jieba
# plotly相关
import plotly.express as px
import plotly.graph_objects as go
# 词云图相关
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# pyecharts相关
from pyecharts.globals import ChartType,SymbolType,CurrentConfig,NotebookType
CurrentConfig.ONLINE_HOST = OnlineHostType.NOTEBOOK_HOST
from pyecharts.charts import Sankey,Page,Line,Bar,WordCloud
from pyecharts.globals import ThemeType
from pyecharts.commons.utils import JsCode
from pyecharts import options as opts
— 02 —
测试Pyecharts
使用官网的示例进行测试,有时候在 jupyter notebook
可能出不来图,最好是先进行测试,保证在线出图
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = (
Bar()
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
.set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
# 或者直接使用字典参数
# .set_global_opts(title_opts={"text": "主标题", "subtext": "副标题"})
)
bar.render_notebook()
在jupyter notebook中能够看到图形说明pyecharts出图成功
— 03 —
数据基本信息
数据信息
数据的主要信息:
用户id: cus_id
评论时间: comment_time
评价: sml-str40,表示4颗星✨
评价内容: cus_comment
口味、环境、服务: taste、environment、service
店铺id:shopID
星星数量:stars
年、月、星期、时间:year/month/weekly/hour
评论长度: comment_len
总长度是32483*14的数据
导入数据
查看数据类型
meishi.dtypes
时间数据转换
将上面????的时间数据comment_time(object)转成时间类型的数据
# 将评论时间comment_time的字符串类型 object 类型转成时间类型
import datetime
meishi["comment_time"] = pd.to_datetime(meishi["comment_time"])
meishi.head