当前位置:
首页 > temp > python入门教程 >
-
Python数据分析+可视化项目教学:分析猛男童年的玩具,并可视化展示商品数据
前言
你相信光吗(那年要不是我拿着手电筒照着电视机,迪迦奥特曼早就被打到了)
来自京东平台上的数据,万代奥特曼与万代高达以及乐高三大类型玩具的数据对比分析,消费者更爱哪一类?
那么,今天我们来分析一下,猛男的童年回忆:高达、乐高、奥特曼
开始代码部分
一次性导入所需要的全部第三方库
import pandas as pd import pyecharts.options as opts from pyecharts.charts import * from pyecharts.globals import ThemeType#设定主题 from pyecharts.commons.utils import JsCode
1. 读取数据,而这些数据,一般都是我们爬取到的商品数据,或者公司内的数据库里面的数据
df1 = pd.read_csv(r'京东-乐高.csv', engine='python', encoding='utf-8-sig') df2 = pd.read_csv(r'6K高达.csv', engine='python', encoding='utf-8-sig') df3 = pd.read_csv(r'6K奥特曼.csv', engine='python', encoding='utf-8-sig')
查看下数据
df1.head(1)
2. 数据处理
把表格统计到一起
df_all = pd.concat([df1,df2,df3])
df_all.info()
除去重复值
df_all.drop_duplicates(inplace=True)
删除不必要的列
df_all = df_all.drop(['商品SKU','商品链接','封面图链接','评论链接','店铺链接','页码','当前时间','页面网址'],axis=1) df_all.head(1)
筛选剔除广告
df_all = df_all[df_all['是否广告'] == '否']
重置索引
df_all = df_all.reset_index(drop=True)
df_all.info()
3. 处理完数据以后,我们就可以做可视化图表了
绘制商家上线的商品数目Top20柱状图
bar1 = ( Bar(init_opts=opts.InitOpts(theme='dark', width='1000px',height ='500px')) .add_xaxis(shopname.index.tolist()) .add_yaxis("",shopname.values.tolist()) .set_series_opts( label_opts=opts.LabelOpts( is_show=True, position='insideRight', font_style='italic' ), itemstyle_opts=opts.ItemStyleOpts( color=JsCode( """new echarts.graphic.LinearGradient(1, 0, 0, 0, [{offset: 0,color: 'rgb(255,99,71)'}, {offset: 1,color: 'rgb(32,178,170)'}])""" ) ) ) .set_global_opts( title_opts=opts.TitleOpts(title="商家上线的商品数目Top20"), xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)), legend_opts=opts.LegendOpts(is_show=True)) .reversal_axis() ) bar1.render_notebook()
总体价格区间
pie1 = ( Pie(init_opts=opts.InitOpts(theme='dark',width='1000px',height='600px')) .add('', datas_pair, radius=['35%', '60%']) .set_global_opts( title_opts=opts.TitleOpts(title='不同价格区间的销售额整体表现'), legend_opts=opts.LegendOpts(orient='vertical', pos_top='15%', pos_left='2%') ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}%")) .set_global_opts( title_opts=opts.TitleOpts( title="乐高、奥特曼、高达\n\n价格区间", pos_left='center', pos_top='center', title_textstyle_opts=opts.TextStyleOpts( color='#F0F8FF', font_size=20, font_weight='bold' ), ) ) .set_colors(['#EF9050', '#3B7BA9', '#6FB27C', '#FFAF34', '#D8BFD8', '#00BFFF', '#7FFFAA']) ) pie1.render_notebook()
单价最高的商品Top20
bar=( Bar(init_opts=opts.InitOpts(height='500px',width='1000px',theme='dark')) .add_xaxis(price_top.index.tolist()) .add_yaxis( '单价最高的商品', price_top.values.tolist(), label_opts=opts.LabelOpts(is_show=True,position='top'), itemstyle_opts=opts.ItemStyleOpts( color=JsCode("""new echarts.graphic.LinearGradient( 0, 0, 0, 1,[{offset: 0,color: 'rgb(255,99,71)'}, {offset: 1,color: 'rgb(32,178,170)'}]) """ ) ) ) .set_global_opts( title_opts=opts.TitleOpts( title='单价最高的商品详细柱状图'), xaxis_opts=opts.AxisOpts(name='玩具名称', type_='category', axislabel_opts=opts.LabelOpts(rotate=90), ), yaxis_opts=opts.AxisOpts( name='单价/元', min_=0, max_=39980.0, splitline_opts=opts.SplitLineOpts(is_show=True,linestyle_opts=opts.LineStyleOpts(type_='dash')) ), tooltip_opts=opts.TooltipOpts(trigger='axis',axis_pointer_type='cross') ) .set_series_opts( markline_opts=opts.MarkLineOpts( data=[ opts.MarkLineItem(type_='average',name='均值'), opts.MarkLineItem(type_='max',name='最大值'), opts.MarkLineItem(type_='min',name='最小值'), ] ) ) ) bar.render_notebook()
出处:https://www.cnblogs.com/qshhl/p/15125964.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数