58 Pandas+Pyecharts | 大众点评餐饮数据分析可视化

大家好,我是欧K~

本期我们利用Python分析「武汉大众点评餐饮数据」,看看:各地址商家店铺数量、推荐商家、推荐菜品、店铺评价、评分占比分布、人均消费分布、餐饮类别等等,希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。

涉及到的库:

  • Pandas — 数据处理
  • Pyecharts — 数据可视化

1. 导入模块

import pandas as pd
from pyecharts.charts import *
from pyecharts import options as opts
import warnings
warnings.filterwarnings('ignore')

2. Pandas数据处理

2.1 读取数据

df = pd.read_excel('武汉餐饮.xlsx')

2.2 数据信息

df.info()

2.3 去除空数据

df = df.dropna()

2.4 数据去重

df = df.drop_duplicates()

2.5 评分、评价数、人均消费数据处理

df1['评分'] = df1['评分']/10

df1 = df1[df1['评价数'].str.contains('条')]
df1['评价数'] = df1['评价数'].str[:-3]
df1['评价数'] = df1['评价数'].astype('int')

df1 = df1[df1['人均消费'] != '']
df1['人均消费'] = df1['人均消费'].str[3:]
df1 = df1[df1['人均消费'] != '']
df1['人均消费'] = df1['人均消费'].astype('int')

3. Pyecharts数据可视化

3.1 各地址商家店铺数量矩形树图

3.2 推荐商家TOP10

def get_bar1():
    bar = (
        Bar()
        .add_xaxis(x_data)
        .add_yaxis('', y_data)
        .reversal_axis()
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='2-推荐商家TOP10',
                subtitle=subtitle,
                pos_top='2%',
                pos_left='center',
                title_textstyle_opts=opts.TextStyleOpts(color=lab_color, font_size=20)
            )
        )
    )

海底捞火锅(19)、U你·湖北家宴菜(14)、茶港·点心·啫啫煲(10)、奈雪的茶(8)、仓桥家·焗寿司·锅物(8)、肥肥虾庄·金牌油焖大虾(8)、肖记公安牛肉鱼杂馆·省级非物质文化遗产(6)、福宝漠北·牛羊肉(6)、西贝(6)、湖锦酒楼(5)。

3.3 店铺评价数TOP10

夏氏砂锅(万松园店)(41655)、金马门国际美食百汇(珞喻路店)(27703)、家阳赵师傅油饼包烧麦(粮道街店)(25158)、小川洋风料理(江汉路店)分店(23625)、融厨湖北菜•非遗技艺•传承藕汤(江汉路一店)(22284)、巴犀烧烤(新崇光店)(21558)、靓靓蒸虾·头牌蒸虾(雪松路创始店)分店(121422)、小川洋风料理(街道口店)分店(21108)、秀玉coffee&kitchen(奥山世纪城店)分店(20974)、老宅藕香·湖北菜·非遗藕汤·武昌鱼(黄鹤楼景观店)(120237)。

3.4 推荐菜品TOP10

def get_bar2():
    chart = (
        Bar()
        .add_xaxis(x_data)
        .add_yaxis('', y_data)
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='4-推荐菜品TOP10',
                subtitle=subtitle,
                pos_top='2%',
                pos_left='center',
                title_textstyle_opts=opts.TextStyleOpts(color=lab_color, font_size=20)
            ),
            legend_opts=opts.LegendOpts(is_show=False)
        )
    )

油焖大虾、招牌虾滑、芝士焗红薯、番茄锅底、干煸藕丝、麻辣牛肉、凉面、鱼香肉丝、鼎汤农场时蔬、凉面

3.5 推荐菜词云

3.6 评分占比

def get_bar():
    chart = (
       Pie()
        .add('',
             datas,
             center=['50%', '55%'],
             label_opts=opts.LabelOpts(formatter='{b}: {c} ({d}%)')
            )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='6-平分占比',
                subtitle=subtitle,
                pos_top='2%',
                pos_left='center',
                title_textstyle_opts=opts.TextStyleOpts(color=lab_color, font_size=20)
            ),
        )    )

评分基本上都在4.0以上,5.0评分的占比约10%。

3.7 人均消费分布

def get_scatter1():
    scatter1 = (
        Scatter()
        .add_xaxis(x_data)
        .add_yaxis('', y_data,
                  )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='7-人均消费占比',
                subtitle=subtitle,
                pos_top='2%',
                pos_left="center",
            ),
        )
    )

人均消费方面基本在100左右较多。

3.8 店铺数量最多地址TOP10

江汉路步行街(53家)、石牌岭(47家)、光谷(45家)、楚河汉街(35家)、西北湖(34家)、客运港(33家)、港澳台风情街(32家)、徐东大街(29家)、解放公园(26家)、万松园(22家)。

3.9 类别词云

4. 源码+数据

下载资源