京公网安备 11010802034615号
经营许可证编号:京B2-20210330
CDA数据分析师出品
作者:泽龙、Mika
数据:真达
后期:泽龙
【导读】
北京时间7月20日,这个赛季的西甲联赛正式结束,最受关注的“全村的希望”武磊和他的西班牙人队彻底告别西甲。
今天我们就用数据来聊一聊武磊。Python技术部分请直接看第二部分。
今天我们聊一聊 武磊
最近,中国足球又成为了社会的焦点话题,12分钟跑、体能、成绩成了社会人士和专业人士互怼的话题,外行怼内行基本功都不行,还玩啥,内行怼外行足球是综合运动,你不懂。真的是热闹非凡,可能足球真的只分为内行和外行,完全不关心的人很少,是个看球的人都可以说自己懂足球,真是现实唯唯诺诺,网络重拳出击。
回到本期的主人公,中国足球第一人武磊,武球王,下赛季,武磊的去向一直占据的体育板块的头版头条,几家有中国背景的球队都想得到武磊,商业价值的确无可比拟,看看爱奇艺西甲的收视率,武磊登场的比赛和不登场的比赛相差70%,西班牙人整体收视率可以和英超媲美了,这就是商业价值,西班牙人虽然降级,但是乐动体育可是知名度节节攀升,这笔投资性价比还是很高的。
我们抽取了皇家西班牙人足球俱乐部在18/19 19/20 2个赛季的全部比赛数据,做了可视化分析,下面我们就来对应数据,解读下武磊的表现。
本文主要从这几个角度展开
01数据解读武磊
我们先来看看武磊职业生涯中的各项数据分析:
1武磊近年生涯回顾
看到武磊的生涯评分,从16年到20年,虽然成下降趋势,但是西甲的强度和中超的强度本身是2个世界,所以说下降也是情理之中,毕竟对手和队友都不一样,在西甲的1.5个赛季,武磊算是高开低走,但是西班牙人更是出现断崖式的下滑,所以要是对比武磊和西班牙人的下滑曲线,C君觉得这个赛季西班牙人真的配不上武磊。
2武磊身价达到1000万欧元
看了生涯走势,再看下身价走势。
武磊小时候的愿望,我要值1000万—真的实现了,西甲中下游球队的主力前锋值1000万也算是公平公正了,虽然进球数有点刺眼,但是创造机会能力强。最近武磊身价下降了200万,主要是因为西班牙人本赛季真的不给力,下赛季假如武磊可以登陆英超,估计身价可以更高。
3武磊欧洲进球曲线图
为了更直观的感受武磊的进球效率,我们统计了武磊正式比赛的进球数,做了折线图。
直观感受是进球效率的确不高,但西班牙人的进攻效率更是低下,基本每场比赛射门更是寥寥无几。只能说武磊不是强力中锋,没有能力一个人左右锋线,他更加舒服的位置是踢二中锋,跑位、射门,而不是护球、盘带、过人、传球。
4西班牙人进攻效率对比
其实也不能完全怪武磊的进攻效率,看看西班牙人的本赛季的进球数,也是惨绝人寰,而且这个不光是西甲,还加入了欧联杯的比赛,要是只看西甲,可以说西班牙人不降级都说不过去,场均也就1个球,再加上后卫线最强的是主力门将,防守常年出问题,可以说西班牙人配的上一个降级名额。
西班牙人队得分走势(2018.8.19-2019.5.18)
西班牙人队得分走势(2019.7.27-至今)
我们对比了上赛季的西班牙人,可以明显看出上赛季的西班牙人进攻好很多,可以达到场均2个球,而且稳定,后防线和本赛季相差不多,但是1个球就可以决定胜负,3分和0分的差距是巨大的。
说到防守,大家可能印象中防守弱的球队都不够凶狠,就是平时说的踢球比较干净,我们统计了犯规走势图,其实大体上看,和西甲平均值相差无几,西甲本身就不是强调身体的联赛。实际看来,西班牙人的丢球主要源于漏人和被人打反击。西班牙人和巴塞罗那同属一个地区,其实踢球的风格也相差无几。在球员能力严重不足的情况下去打全攻全守的足球,去打传控足球无异于自杀,中场丢球被人打反击就是本赛季西班牙人的写照。
西班牙人的降级真的是防守问题大于进攻问题,防守才是定位于小球会的球队立足之本。武磊的确浪费了不少机会,但每场触球都是个位数,也是挺难为武磊的,大家都在说孙兴慜厉害,但是孙兴慜浪费的机会、拿球的机会都要比武磊多很多,只能说他赢得了信任,拿球机会多了,形成了正向循环,武磊还没有真正赢得五大联 赛的最重。
02数据分析步骤
我们使用Python获取了球探体育网站上西班牙人的球队数据,地址:
http://zq.win007.com/cn/team/Summary/100.html
以下展示部分分析代码:
首先导入所需包,其中pandas用于数据读入和数据整理,pyecharts用于数据可视化分析。
import pandas as pd from pyecharts.charts import Bar, Pie, Line, Page from pyecharts import options as opts
1数据读入
该数据包含了西班牙人球队2013-08-20至2020-07-17日比赛数据,数据预览如下:
# 读入数据
df_4 = pd.read_excel('../data/球探体育比赛数据.xlsx')
# 提取日期
df_4['日期'] = df_4['时间'].str.split(' ').str[0]
df_4.head()
2数据预处理
去掉友谊赛的数据并按照日期进行升序排序。
# 去掉友谊赛
df_4 = df_4[df_4['比赛']!='球会友谊']
# 排序
df_4 = df_4.sort_values('日期')
df_4.shape
# 筛选时间 df_sel2 = df_4[(df_4['日期'] >= '2019-07-26')] df_sel2.head()
# 提西班牙人 主队比分
zhudui = df_sel2[df_sel2['主队']=='西班牙人'][['日期', '比分']]
# 分数
zhudui['分数'] = zhudui['比分'].str.split('-').str[0].astype('int')
# 提西班牙人 客队比分
kedui = df_sel2[df_sel2['客队']=='西班牙人'][['日期', '比分']]
# 分数
kedui['分数'] = kedui['比分'].str.split('-').str[1].astype('int')
# 提取日期
riqi = df_sel2[['日期']]
# 合并数据
riqi = pd.merge(riqi, zhudui[['日期', '分数']], on='日期', how='left')
riqi = pd.merge(riqi, kedui[['日期', '分数']], on='日期', how='left')
riqi.columns = ['日期', '主队分数', '客队分数']
# 填补空值
riqi = riqi.fillna(0)
# 分数相加
riqi['分数'] = riqi['主队分数'] + riqi['客队分数']
riqi.head()
# 产生数据 x_data = riqi['日期'].values.tolist() y_data = riqi['分数'].values.tolist() # 折线图 line5 = Line(init_opts=opts.InitOpts(width='1350px', height='750px')) line5.add_xaxis(x_data) line5.add_yaxis('', y_data, label_opts=opts.LabelOpts(is_show=False), markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="min"), opts.MarkPointItem(type_="max"),]), ) line5.set_global_opts(title_opts=opts.TitleOpts(title='西班牙球队得分走势(2019.07.26-至今)'), xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate='45'), axisline_opts=opts.AxisLineOpts(is_on_zero=False), ), yaxis_opts=opts.AxisOpts(max_=10, min_=-1, name="", type_="value", axislabel_opts=opts.LabelOpts(formatter="{value}"), splitline_opts=opts.SplitLineOpts(is_show=False), ) ) line5.set_series_opts(linestyle_opts=opts.LineStyleOpts(width=3, color='#4169E1')) line5.render()
# 计算得分
score_num = riqi['分数'].value_counts()
# 产生数据
data_pair = [list(z) for z in zip([str(i) + '分'for i in score_num.index], score_num.values.tolist())]
# 绘制饼图
pie5 = Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))
pie5.add('', data_pair, radius=['35%', '60%'])
pie5.set_global_opts(title_opts=opts.TitleOpts(title='西班牙球队得分分布(2019.07.26-至今)'),
legend_opts=opts.LegendOpts(orient='vertical', pos_top='15%', pos_left='2%'))
pie5.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} \n占比({d}%)"))
pie5.set_colors(['#EF9050', '#3B7BA9', '#6FB27C', '#FFAF34', '#D8BFD8', '#00BFFF', '#7FFFAA'])
pie5.render()
3.3 赛季 2019-07-26 - 今 西班牙球队犯规 黄牌 红牌
# 筛选时间 df_sel2 = df_4[(df_4['日期'] >= '2019-07-26')] # 产生数据 x_data = df_sel2['日期'].values.tolist() y_data1 = df_sel2['犯规'].values.tolist() y_data2 = df_sel2['黄牌'].values.tolist() y_data3 = df_sel2['红牌'].values.tolist()
# 折线图 line6 = Line(init_opts=opts.InitOpts(width='1350px', height='750px')) line6.add_xaxis(x_data) line6.add_yaxis('犯规', y_data1, markpoint_opts=opts.MarkPointOpts(data=[ opts.MarkPointItem(type_='max', name='最大值'), opts.MarkPointItem(type_='min', name='最小值') ])) line6.add_yaxis('黄牌', y_data2, markpoint_opts=opts.MarkPointOpts(data=[ opts.MarkPointItem(type_='max', name='最大值'), opts.MarkPointItem(type_='min', name='最小值') ])) line6.add_yaxis('红牌', y_data3, markpoint_opts=opts.MarkPointOpts(data=[ opts.MarkPointItem(type_='max', name='最大值'), opts.MarkPointItem(type_='min', name='最小值') ])) line6.set_global_opts(title_opts=opts.TitleOpts(title='西班牙球队犯规-黄牌-红牌走势图(2019.07.26-至今)'), xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate='45'), axisline_opts=opts.AxisLineOpts(is_on_zero=False)), yaxis_opts=opts.AxisOpts(max_=30, min_=0, name="", type_="value", axislabel_opts=opts.LabelOpts(formatter="{value}"), splitline_opts=opts.SplitLineOpts(is_show=False), ) ) line6.set_series_opts(label_opts=opts.LabelOpts(is_show=False), linestyle_opts=opts.LineStyleOpts(width=3) ) line6.render()
结语
本赛季,到底是武磊配不上西班牙人,还是西班牙人配不上武磊,这个还是留给大家去评判,可以留言给我们,说出你的观点。
如果还想看任何体育相关的数据分析
同样请给我们留言吧
我们立刻安排上!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
随着新零售模式的快速普及,零售行业从传统的“货品驱动”全面转向“用户驱动”。门店交易数据、线上消费记录、浏览轨迹、复购频 ...
2026-08-27在数据分析、爬虫采集、接口开发、数据归档等场景中,JSON与CSV是两种使用率最高的数据存储格式。JSON为键值对结构化格式,适配 ...
2026-08-27 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-08-27在数据分析工作中,时间序列是最常见的数据类型之一,订单时间、日志时间、交易时段、统计周期等数据均离不开时间处理。原始数据 ...
2026-08-26在数据分析与数据预处理工作中,原始数据普遍存在录入错误、系统故障、偶然极值等问题,极易产生异常数据。异常数据会严重干扰数 ...
2026-08-26 很多数据分析师能熟练写SQL、做透视表,但当被问到“数据是从哪里来的?经过哪些加工才进入数据仓库?ETL具体做了什么?”时 ...
2026-08-26在数理统计与数据分析领域,多因素方差分析与线性回归模型是研究变量关系、因素影响、数据差异规律的两大核心工具。二者均属于经 ...
2026-08-25数据分析的核心价值不在于数据计算与图表制作,而在于清晰、精准、有逻辑地输出结论、支撑业务决策。日常数据分析报告普遍存在结 ...
2026-08-25 很多数据分析师能熟练地写SQL、做透视表、算描述性统计,但当被问到“如何预测用户流失概率”“如何归因销量下滑的关键因素 ...
2026-08-25平均数是数据分析、数理统计与日常运算中最基础、最常用的统计量,核心作用是浓缩一组数据的整体水平、刻画数据集中趋势。在众多 ...
2026-08-24在MySQL数据库中,InnoDB存储引擎作为主流事务型引擎,默认事务隔离级别为可重复读(Repeatable Read,RR),这与SQL Server、Or ...
2026-08-24 很多数据分析师拿到数据就开始清洗、建模,但当被问到“这批数据属于什么类型——结构化还是非结构化?分类变量还是数值变量 ...
2026-08-24 很多数据分析师画过趋势图、做过业绩预测,但当被问到“这个月销售额增长20%,到底是长期趋势自然增长,还是促销活动的短期 ...
2026-08-21在数据分析与数据可视化工作中,直方图是展示数据分布特征、离散程度、集中区间的核心图表,能够直观呈现数值数据的频次分布规律 ...
2026-08-20在数据分析领域有一句核心准则:垃圾数据进,垃圾数据出。数据清洗是数据分析、数据建模、数据可视化之前的必经前置工序,也是保 ...
2026-08-20 很多数据分析师做过按月份的销售额趋势图,画过按天的流量折线图,但当被问到“时间序列和普通数据有什么本质区别”“季节性 ...
2026-08-20在Python数据分析与数据清洗工作中,Pandas是最核心的数据处理库,DataFrame是结构化数据的标准存储格式。在实时数据采集、循环 ...
2026-08-19在零售行业大数据分析与精细化运营领域,纸尿裤旁摆放啤酒是最经典、最具代表性的商业案例。两种看似毫无关联的商品,一个是婴幼 ...
2026-08-19 很多数据分析师能熟练地计算指标、搭建标签体系,但当被问到“画像到底在解决什么问题”“画像和标签是什么关系”“画像如何 ...
2026-08-19在数据分析、业务监控、质量检测与风险管控工作中,数据波动性是衡量数据稳定性、业务健康度、结果可信度的核心依据。数据波动代 ...
2026-08-18