社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

武磊告别西甲!Python带你解读「全村的希望」武磊职业数据

CDA数据分析师 • 6 年前 • 544 次点击  

 



 CDA数据分析师 出品  

作者:泽龙、Mika

数据:真达  

后期:泽龙

【导读】

北京时间7月20日,这个赛季的西甲联赛正式结束,最受关注的“全村的希望”武磊和他的西班牙人队彻底告别西甲。


今天我们就用数据来聊一聊武磊。Python技术部分请直接看第二部分。公众号后台,回复关键字“武磊”获取完整数据。

Show me data,用数据说话

今天我们聊一聊 武磊

点击下方视频,先睹为快:


最近,中国足球又成为了社会的焦点话题,12分钟跑、体能、成绩成了社会人士和专业人士互怼的话题,外行怼内行基本功都不行,还玩啥,内行怼外行足球是综合运动,你不懂。真的是热闹非凡,可能足球真的只分为内行和外行,完全不关心的人很少,是个看球的人都可以说自己懂足球,真是现实唯唯诺诺,网络重拳出击。


回到本期的主人公,中国足球第一人武磊,武球王,下赛季,武磊的去向一直占据的体育板块的头版头条,几家有中国背景的球队都想得到武磊,商业价值的确无可比拟,看看爱奇艺西甲的收视率,武磊登场的比赛和不登场的比赛相差70%,西班牙人整体收视率可以和英超媲美了,这就是商业价值,西班牙人虽然降级,但是乐动体育可是知名度节节攀升,这笔投资性价比还是很高的。


我们抽取了皇家西班牙人足球俱乐部在18/19 19/20 2个赛季的全部比赛数据,做了可视化分析,下面我们就来对应数据,解读下武磊的表现。

本文主要从这几个角度展开


  • 武磊生涯评分

  • 武磊身价浮动数据

  • 武磊欧洲进球曲线图

  • 西班牙人进攻效率对比

  • 数据分析过程


01


数据解读武磊


我们先来看看武磊职业生涯中的各项数据分析:


武磊近年生涯回顾 

1



看到武磊的生涯评分,从16年到20年,虽然成下降趋势,但是西甲的强度和中超的强度本身是2个世界,所以说下降也是情理之中,毕竟对手和队友都不一样,在西甲的1.5个赛季,武磊算是高开低走,但是西班牙人更是出现断崖式的下滑,所以要是对比武磊和西班牙人的下滑曲线,C君觉得这个赛季西班牙人真的配不上武磊。



武磊身价达到1000万欧元

2



看了生涯走势,再看下身价走势。

武磊小时候的愿望,我要值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


数据可视化

3


3.1 赛季 2019-07-26 - 今 西班牙得分走势图


# 筛选时间
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() 


3.2 赛季 2019-07-26 - 今 西班牙得分分布

# 计算得分
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() 


结语


本赛季,到底是武磊配不上西班牙人,还是西班牙人配不上武磊,这个还是留给大家去评判,可以留言给我们,说出你的观点。


如果还想看任何体育相关的数据分析

同样请给我们留言吧

我们立刻安排上!


关注CDA数据分析师公众号
回复关键字“武磊” 
获取详细数据代码

CDA数据分析师 

本文出品:CDA数据分析师(ID: cdacdacda)


📚推荐阅读 READ MORE


(点击下方图片阅读)

崛起 or 没落?新一线城市竞争力盘点,用Python绘制动态图带你看懂!

 


📌CDA课程咨询

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/71591