【01 可视化 | Python分析中秋月饼,这几种口味才是yyds!】
大家好,我是欧K~
中秋节,又称祭月节、月光诞、月夕、秋节、仲秋节、拜月节、月娘节、月亮节、团圆节等,是中国民间的传统节日。自古便有祭月、赏月、吃月饼、玩花灯、赏桂花、饮桂花酒等民俗,流传至今,经久不息。
本期我们通过分析某宝中秋月饼的销售情况,看看哪些口味月饼卖得好,哪些地方月饼卖得好,希望对小伙伴们有所帮助。
涉及到的库:
- Pandas — 数据处理
- Pyecharts — 数据可视化
- jieba — 分词
- collections — 数据统计
可视化部分:
- Bar — 柱状图
- Pie — 饼状图
- Map— 地图
- Stylecloud — 词云图
1. 导入模块
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 空值处理
处理购买人数为空的记录:
2.4 处理付款情况字段
付款人数超过10000后会直接用"万"替代,这里我们需要将其恢复:
# 提取数值 # 提取单位(万) 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')) )
效果:

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

还可以来些其他(比如:形状)设置:

3.2 月饼销量排名TOP10店铺
代码:
效果:

3.3 全国各地区月饼销量
结果:

从地域分布图来看,店铺主要分布在北京、山东、浙江、广东、云南等东南地区。
3.4 不同价格区间的月饼销量占比

可以看到,50元以下的月饼销量占比达到了52%,超过了半数的月饼售价在50元以内,100元以下的月饼销量占比更是达到了85%之多,虽然也有价格在1000元以上的,但整体价格还是比较实惠的。
3.5 月饼口味分布

流心、五仁、蛋黄莲蓉、豆沙 yyds!!!
3.6 词云图

4. 源码下载
【点击跳转】