本站消息

站长简介/公众号


站长简介:逗比程序员,理工宅男,前每日优鲜python全栈开发工程师,利用周末时间开发出本站,欢迎关注我的微信公众号:幽默盒子,一个专注于搞笑,分享快乐的公众号

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-09(6)

2020-10(71)

Python数据分析+可视化项目教学:分析猛男童年的玩具,并可视化展示商品数据

发布于2021-09-11 20:06     阅读(115)     评论(0)     点赞(5)     收藏(3)



前言

你相信光吗(那年要不是我拿着手电筒照着电视机,迪迦奥特曼早就被打到了)

来自京东平台上的数据,万代奥特曼与万代高达以及乐高三大类型玩具的数据对比分析,消费者更爱哪一类?

那么,今天我们来分析一下,猛男的童年回忆:高达、乐高、奥特曼

采集数据部分我就不再讲了,想了解的可以看《京东电商平台商品数据爬取》,这次的数据也是在京东平台上的数据

开始代码部分

一次性导入所需要的全部第三方库

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.pythonheidong.com/blog/article/1037681/74ad13ee10678f97195f/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0
收藏该文
已收藏

评论内容:(最多支持255个字符)