IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 可视化 | Python分析中秋月饼,这几种口味才是yyds!!! -> 正文阅读

[人工智能]可视化 | Python分析中秋月饼,这几种口味才是yyds!!!


大家好,我是 👉 【Python当打之年】

中秋节,又称祭月节、月光诞、月夕、秋节、仲秋节、拜月节、月娘节、月亮节、团圆节等,是中国民间的传统节日。自古便有祭月、赏月、吃月饼、玩花灯、赏桂花、饮桂花酒等民俗,流传至今,经久不息。

本期我们通过分析某宝中秋月饼的销售情况,看看哪些口味月饼卖得好哪些地方月饼卖得好,希望对小伙伴们有所帮助。

涉及到的库:
Pandas — 数据处理
Pyecharts — 数据可视化
jieba — 分词
collections — 数据统计

可视化部分:
Bar — 柱状图
Pie — 饼状图
Map— 地图
Stylecloud — 词云图

1. 导入模块

import re
import jieba
import stylecloud
import numpy as np
import pandas as pd
from collections import Counter
from pyecharts.charts import Bar
from pyecharts.charts import Map 
from pyecharts.charts import Pie
from pyecharts.charts import Grid
from pyecharts.charts import Page
from pyecharts.components import Image
from pyecharts.charts import WordCloud
from pyecharts import options as opts
from pyecharts.globals import SymbolType
from pyecharts.commons.utils import JsCode

2. Pandas数据处理

2.1 读取数据

df = pd.read_excel("月饼.xlsx")
df.head(10)

结果:
在这里插入图片描述

2.2 去除重复值

print(df.shape)
df.drop_duplicates(inplace=True)
print(df.shape)

(4520, 5)
(1885, 5)

一共有4520条数据,去重后还有1885条数据(某宝一个店铺会在不同页面推荐,导致重复数据比较多)。

2.3 空值处理

处理购买人数为空的记录:

df['付款情况'] = df['付款情况'].replace(np.nan,'0人付款')

2.4 处理付款情况字段

df[df['付款情况'].str.contains("万")]

在这里插入图片描述
付款人数超过10000后会直接用"万"替代,这里我们需要将其恢复,直接转换为销量(销量=售价*人数):

# 提取数值
df['num'] = [re.findall(r'(\d+\.{0,1}\d*)', i)[0] for i in df['付款情况']]
df['num'] = df['num'].astype('float')

# 提取单位(万)
df['unit'] = [''.join(re.findall(r'(万)', i)) for i in df['付款情况']]
df['unit'] = df['unit'].apply(lambda x:10000 if x=='万' else 1)

# 计算销量
df['销量'] = df['num'] * df['unit']
df = df[df['地址'].notna()]
df['省份'] = df['地址'].str.split(' ').apply(lambda x:x[0])

# 删除多余的列
df.drop(['付款情况', 'num', 'unit'], axis=1, inplace=True)

# 重置索引
df = df.reset_index(drop=True)

结果:
在这里插入图片描述

3. Pyecharts数据可视化

3.1 月饼商品销量Top10

代码:

shop_top10 = df.groupby('商品名称')['销量'].sum().sort_values(ascending=False).head(10)
bar0 = (
Bar()
.add_xaxis(shop_top10.index.tolist()[::-1])
.add_yaxis('sales_num', shop_top10.values.tolist()[::-1])
.reversal_axis()
.set_global_opts(title_opts=opts.TitleOpts(title='月饼商品销量Top10'),
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-30)))
.set_series_opts(label_opts=opts.LabelOpts(position='right'))
)

效果:
在这里插入图片描述

商品名称太长显示不全,我们调整一下边距:

bar1 = (
Bar()
.add_xaxis(shop_top10.index.tolist()[::-1])
.add_yaxis('sales_num', shop_top10.values.tolist()[::-1],itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_js)))
.reversal_axis()
.set_global_opts(title_opts=opts.TitleOpts(title='月饼商品销量Top10'),
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-30)),
)
.set_series_opts(label_opts=opts.LabelOpts(position='right'))
)
# 将图形整体右移
grid = (
Grid()
.add(bar1, grid_opts=opts.GridOpts(pos_left='45%', pos_right='10%'))
)

在这里插入图片描述

这样是不是好多了。
还可以来些其他(比如:形状)设置:
在这里插入图片描述

3.2 月饼销量排名TOP10店铺

代码:

shop_top10 = df.groupby('店铺名称')['销量'].sum().sort_values(ascending=False).head(10)
bar3 = (
Bar(init_opts=opts.InitOpts(
width='800px', height='600px',))
.add_xaxis(shop_top10.index.tolist())
.add_yaxis('', shop_top10.values.tolist(),
category_gap='30%',
)

.set_global_opts(
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-30)),
title_opts=opts.TitleOpts(
title='月饼销量排名TOP10店铺',
pos_left='center',
pos_top='4%',
title_textstyle_opts=opts.TextStyleOpts(
color='#ed1941', font_size=16)
),
visualmap_opts=opts.VisualMapOpts(
is_show=False,
max_=600000,
range_color=["#CCD3D9", "#E6B6C2", "#D4587A","#FF69B4", "#DC364C"]
),
)
)
bar3.render_notebook()

效果:
在这里插入图片描述

稻香村的月饼销量遥遥领先。

3.3 全国各地区月饼销量

province_num = df.groupby('省份')['销量'].sum().sort_values(ascending=False)
map_chart = Map(init_opts=opts.InitOpts(theme='light',
width='800px',
height='600px'))
map_chart.add('',
[list(z) for z in zip(province_num.index.tolist(), province_num.values.tolist())],
maptype='china',
is_map_symbol_show=False,
itemstyle_opts={
'normal': {
'shadowColor': 'rgba(0, 0, 0, .5)', # 阴影颜色
'shadowBlur': 5, # 阴影大小
'shadowOffsetY': 0, # Y轴方向阴影偏移
'shadowOffsetX': 0, # x轴方向阴影偏移
'borderColor': '#fff'
}
}
)
map_chart.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
is_show=True,
is_piecewise=True,
min_ = 0,
max_ = 1,
split_number = 5,
series_index=0,
pos_top='70%',
pos_left='10%',
range_text=['销量(份):', ''],
pieces=[
{'max':2000000, 'min':200000, 'label':'> 200000', 'color': '#990000'},
{'max':200000, 'min':100000, 'label':'100000-200000', 'color': '#CD5C5C'},
{'max':100000, 'min':50000, 'label':'50000-100000', 'color': '#F08080'},
{'max':50000, 'min':10000, 'label':'10000-50000', 'color': '#FFCC99'},
{'max':10000, 'min':0, 'label':'0-10000', 'color': '#FFE4E1'},
],
),
legend_opts=opts.LegendOpts(is_show=False),
tooltip_opts=opts.TooltipOpts(
is_show=True,
trigger='item',
formatter='{b}:{c}'
),
title_opts=dict(
text='全国各地区月饼销量',
left='center',
top='5%',
textStyle=dict(
color='#DC143C'))
)

结果:
在这里插入图片描述
从地域分布图来看,店铺主要分布在北京、山东、浙江、广东、云南等东南地区。

3.4 不同价格区间的月饼销量占比
在这里插入图片描述

可视化 | Python分析中秋月饼,这几种口味才是yyds
可以看到,50元以下的月饼销量占比达到了52%,超过了半数的月饼售价在50元以内,100元以下的月饼销量占比更是达到了85%之多,虽然也有价格在1000元以上的,但整体价格还是比较实惠的。

3.5 月饼口味分布
在这里插入图片描述

流心、五仁、蛋黄莲蓉、豆沙 yyds!!!

3.6 词云图

在这里插入图片描述

可视化在线运行(全部代码):

https://mp.weixin.qq.com/s/l3znpbptdNj-0TdqMBMKSw


以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享注明出处)让更多人知道。

推荐阅读

爬取《白蛇2:青蛇劫起》20000+影评数据分析可视化
可视化 | Pyecharts动态绘制比特币近几年股价变迁
123个Pandas常用基础指令,真香!
爬虫+可视化 | 动态展示2020东京奥运会奖牌世界分布
Pandas+Pyecharts | 北京某平台二手房数据分析+可视化
Pandas+Pyecharts | 2021中国大学综合排名分析+可视化
可视化 | Python绘制高颜值台风地理轨迹图
可视化 | 用Python分析近5000个旅游景点,告诉你假期应该去哪玩
可视化 | Python精美地图动态展示近20年全国各省市GDP
可视化 | Python陪你过520:在你身边,你在身边
爬虫 | Python送你王者荣耀官网全套皮肤
爬虫 | 用python构建自己的IP代理池,再也不担心IP不够用啦!
技巧 | 20个Pycharm最实用最高效的快捷键(动态展示)
技巧 | 5000字超全解析Python三种格式化输出方式【% / format / f-string】
技巧 | python定时发送邮件(自动添加附件)
爬虫 | Python送你王者荣耀官网全套皮肤
爬虫 | 用python构建自己的IP代理池,再也不担心IP不够用啦!

文章首发微信公众号 “Python当打之年” ,每天都有python编程技巧推送,希望大家可以喜欢
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 15:47:40  更:2021-09-20 15:47:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 14:33:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码