☰
未来30天全国演唱会数据分析
2026/10/17 16:49:52 网站建设 项目流程

1项目简介

本项目为大麦网全国演唱会数据分析项目,完整覆盖“公开数据获取→数据清洗→MySQL入库→探索性数据分析→交互式可视化看板”全数据分析流程。

项目目标:获取短期全国演出公开数据,挖掘演艺市场的地域分布、档期规律、票价分层特征,输出业务洞察,给演出主办方提供选址、排期、定价的落地参考。

项目实现:定义项目分析需求,完成公开数据获取、脚本逻辑审查、数据校验与BUG排查;完成数据核验后,独立搭建PowerBI交互式仪表盘,完成数据解读与业务落地建议输出。

原始数据600条,经过数据清洗、校验去重后,得到有效数据598条。

图1 整体流程图

2项目技术栈

(1)数据获取:Python,requests,jsonlines;获取过程遇到平台访问频次限制,评估已有样本足够支撑分析,停止继续获取。

(2)数据清洗:Pandas、正则表达式re;编写清洗脚本,通读代码,校验脏数据处理、日期解析逻辑,核对清洗前后数据差异,修复代码缺陷,衍生业务字段。

(3)数据存储:MySQL;完成建表、入库脚本编写,审核表结构、索引设计,校验批量入库逻辑,处理 NaN 写入数据库的异常问题,入库后做数据校验。

(4)探索性绘图:Matplotlib、Seaborn,完成可视化绘图,核对图表逻辑、业务表达,验证图表和统计结果一致性。

(5)交互式可视化:Power BI,直连 MySQL 数据库,搭建多页面交互式仪表盘。

(6)开发环境:Python3.9,Navicat,PowerBI Desktop。

3公开数据获取流程

3.1 数据源说明

数据源选取大麦网对外展示的未来30天全国演唱会公开列表页面,获取字段包含演出ID、城市、演出原始时间文本、最低票价、最高票价、演出类型、艺人名称等公开展示信息。

3.2 获取方案设计

采用Python请求库循环分页拉取页面公开数据,数据存储选用JSON Lines,每行保存一条JSON演出数据。该格式优势:支持边获取边追加写入,程序意外中断不会损坏已经采集完成的数据,断点续采友好。对数据获取逻辑进行审核,确认字段抓取逻辑符合项目需求。

3.3 获取遇到的问题

连续分页请求触发平台访问频次限制,页面提示操作频繁。综合评估,已获取 600 条演出核心样本,样本量足够完成市场分析,因此终止数据获取,不再高频请求避免访问受限。

3.4 原始数据特点

原始数据存在大量脏数据问题:演出时间为非标准化文本,存在单日、多日连演、跨年演出;部分字段为空;同一场演出会在多页重复抓取。后续需要通过数据清洗处理。

图2 原始JSON公开数据预览截图

4数据清洗过程

4.1 清洗目标

对600条原始演出数据进行预处理,剔除脏数据,统一数据格式,衍生分析需要的业务字段,输出干净结构化数据存入数据库。核心工作:审查代码逻辑、校验清洗结果、定位并修复逻辑漏洞。

4.2 清洗步骤

1.重复数据剔除

以演出唯一 ID 作为判断依据,删除重复获取的演出记录,原始 600 条,去重后剩余 598 条有效数据。核对去重前后的数据量,验证去重逻辑有效性。

2.空值兜底处理

对城市、演出时间等核心字段做空值判断,缺失关键字段的数据直接剔除;票价字段空值做兜底处理,使用`(值 or "").strip()`避免空指针报错,抽查脏数据样本验证空值处理效果。

3.日期文本解析(核心难点)

原始时间文本格式不统一,样例如`2026.10.30-11.01`,存在跨月份、跨年场次。使用正则表达式提取起始、结束月日,增加跨年判断逻辑;重点校验这段代码,测试跨年场景,确认当结束月份数字小于起始月份,能够自动识别跨年,结束年份+1,并正常转为标准datetime时间格式。

图3 数据清洗核心代码截图(正则解析日期代码片段)

4.衍生字段计算

基于解析完成的演出日期,新增字段:星期几、是否周末、演出持续天数,为后续时间维度分析做准备。抽查多条记录,校验衍生字段计算结果是否正确。

5.导出编码处理

清洗完成导出CSV文件时,指定编码utf-8-sig,解决Excel打开中文乱码问题;保留原始时间文本字段`showtime_raw`,保证清洗过程可追溯。

图4 清洗后数据

5数据入库设计与实现

5.1 数据库设计

数据库名称:`concert_analysis`,数据表名称:`concerts`,字符集设置 utf8mb4,支持完整中文存储。

数据表共16个字段,演出ID设置为主键;在高频查询字段建立索引:城市、演出类型、演出日期、是否周末、票价。审核表结构,确认索引设计可以提升SQL查询速度,同时提升Power BI读取、筛选数据的性能。

5.2 入库实现逻辑

使用参数化SQL+executemany批量插入数据。参数化SQL可以规避SQL注入风险,同时批量插入相比单行循环写入,入库效率更高。审核SQL语句,确认参数化写法规范。

5.3 入库踩坑问题

初始代码直接将Pandas的NaN写入MySQL,执行报错。定位到该问题,了解MySQL不能直接识别Pandas的NaN,修正逻辑,把Pandas的NaN转换为Python原生None,存入数据库自动识别为NULL。

5.4 入库校验

数据写入完成后,执行SQL统计校验:COUNT总条数、MIN/MAX演出日期,核对数据总量和时间窗口,确认入库数据没有丢失、错乱。

图5 concerts表结构与索引截图

6探索性数据分析

基于清洗入库后的598条有效数据做多维度探索分析,从地域、时间、演出类型、票价四个维度挖掘市场特征,绘图后核对统计逻辑,确认图表数值与数据库数据保持一致。

6.1 各城市演出场次地域分布分析

统计全国各个城市演出数量,绘制横向条形图。数据显示本次数据覆盖全国 99座城市,演出资源高度集中。TOP5城市上海73场、北京54场、深圳40场、广州39场、杭州32场,五大城市场次合计占全部演出39.8%。演艺资源集中在人口多、消费能力强一线、新一线城市,下沉三四线城市演出供给偏少。

图6 全国各城市演出场次分布条形图

6.2 演出时间分布分析

统计不同日期的演出数量,绘制时间折线图,可以看到演出存在周期性波动,每月上旬演出场次偏少,中下旬演出扎堆,存在明显档期竞争。

图7 演出时间分布折线图

6.3 周末与工作日演出占比分析

通过衍生字段`是否周末`统计,周末场次404场,占总场次67.6%;周末日均场次是工作日的5.7倍,市场周末效应极强。主办方优先将演出安排在休息日,最大化保障观众到场率。

图8 周末/工作日演出占比饼图

6.4 演出类型结构分析

Livehouse类型演出共计337场,占比56.4%,是演艺市场的基本盘;大型体育馆演出数量更少,但是票价上限更高,是票房主要来源。

图9 演出类型分布饼图

6.5 票价分布特征分析

绘制票价分布直方图,使用对数刻度。票价区间跨度大,存在6800元VIP极端高价离群值。最低票价中位数178元,中位数不受极端高价影响,更能代表普通观众的购票门槛。低价演出大部分安排在周末;高票价受众时间自由度更高,工作日也会安排少量演出。

图10 演唱会票价分布直方图(对数刻度)

7 Power BI交互式可视化仪表盘实现

将Power BI直连MySQL数据库,搭建交互式分析仪表盘,一共4个页面:KPI指标总览、TOP城市分析、票价区间簇状柱形图、城市切片筛选页面。

仪表盘包含指标卡片、TOP10横向条形图、票价区间柱形图、城市切片器。支持点击切片器,按照城市筛选,实现图表联动下钻,动态查看不同城市的演出指标。

静态matplotlib图片只能一次性展示固定结果;Power BI看板支持交互式探索,模拟企业日常数据分析报表。

图11 Power BI交互式仪表盘全景截图

8数据分析结论与业务落地建议

8.1 数据分析结论

1.地域:演出资源高度集中头部城市,北上广深杭占据近四成演出场次,下沉市场供给不足。

2.档期:周末效应突出,超三分之二演出放在周末,周末日均演出远高于工作日。

3.演出结构:Livehouse为市场主体;体育馆大型演出数量少,溢价能力更强。

4.票价:大众主力消费票价集中在178元附近;存在少量极端高价VIP票,拉高平均值,分析票价选用中位数更合理。

8.2 业务落地建议

1.城市选址:头部一线、新一线城市适合大型体育馆巡演;成都、重庆、武汉等新一线可以作为拓展目标;三四线城市谨慎落地,优先小体量 Livehouse 试水。

2.排期策略:普通演出优先周末档期;高价高端演出可错峰安排在工作日;避开每月中下旬演出扎堆的竞争窗口期。

3.定价策略:大众演出主打 0-200 元亲民票价;中端设置 200-400 元主力利润档位;大型巡演使用多级票价,区分普通票、VIP 票,提升单场收入。

4.长期运营:搭建动态数据监控体系,持续获取公开数据,通过 PowerBI 看板实时监测市场热度;对极端高价票单独标记,区分真实业务数据和异常值。

9项目难点、踩坑复盘与优化方向

9.1 项目难点与踩坑

1.高频分页拉取公开数据触发平台访问频次限制,无法持续获取,权衡后使用现有样本完成分析。

2.原始演出时间文本格式混乱,包含跨年多日演出,需要正则+月份判断逻辑完成日期解析,校验并测试了跨年场景,保证解析准确。

3.入库阶段发现Pandas中NaN无法直接写入MySQL,定位问题并修改代码,将 NaN转为None存入数据库NULL。

4.票价数据右偏,存在极高VIP离群值,直接使用平均值会产生误导,选用中位数进行分析。

9.2 后续优化方向

1.增量获取更多历史公开数据,增加时间维度,实现同比、环比分析。

2.将艺人字段拆分为独立维度表,分析艺人热度与演出票房的关系。

3.引入节假日、同城赛事、天气等外部数据,构建演出热度预测模型。

代码创库链接:https://gitee.com/Yy_love_QAQ/Concert-Market-Analysis

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询