本文分两部分:1.描述分析部分,着重进行数据的可视化分析,图片使用Python绘图包matplotlib生成,使用ppt制作为图文形式方便阅读,图片生成代码和分析过程代码在第二部分呈现;2.具体操作部分,呈现完整的数据分析流程和全部代码。
描述分析报告
数据理解项目说明数据内容说明提出问题理解数据
数据清洗检查缺失值检查并处理异常值
分析数据整体观察逐项展示
项目说明
数据来源于CSDN,碰巧看到我感兴趣的数据于是便下载来分析,利用pandas包导入数据再用matplotlib包对数据进行可视化处理。让读者直观感受历届世界杯概况。https://download.csdn.net/download/willty/10490897
数据内容说明数据是从1930年第一届世界杯开始到2014年,没有2018的数据。所以只截止到2014年。世界杯历史上有2次决赛是平局用点球大战决胜负的,但是数据没记录点球大战的成绩于是我手动添加点球大战的比分进正常时间的比分里面了。有些国家前后名字有变动如苏联,就没有去更改。德国以前叫Germany FR就改成了现在的Germany。由于1938-1950间正值一,二战时期1942,1946年世界杯取消。
提出问题主队和客队那个胜率更高,主场优势是否存在。观众对于世界杯的热情发展趋势如何。足球强国那么多到底哪个国家才是世界杯大热门。
理解数据
Year: 年份Datetime: 日期Stage: 比赛类别(小组赛,决赛等)Stadium: 场馆Home Team Name: 主队名Home Team Goals: 主队得分Away Team Name: 客队名Away Team Goals: 客队得分Attendance: 观众数量Half-timeHomeGoals: 主队上半场进球Half-timeAwayGoals: 客队上半场进球Referee: 主裁名字和国籍Assistant 1: 边裁1名字和国籍Assistant 2: 边裁2名字和国籍RoundID: 轮次IDMatchID: 赛事IDHome Team Initials: 主队简称Away Team Initials: 客队简称
导入数据:
由于赛事ID唯一所以删除重复值,最后得到836行的数据。
由于观众人数缺失了一个数据,我用fillna函数对其填入了观众的平均值
使用while循环遍历数据统计出主客队得分来判断胜负情况
figure函数定义画板样式(背景颜色,大小)
subplot函数可以设定有多少个子图
grid可以制作网格
从以上可以看出:主场球队获胜概率远大于客场队主队进球的平均水平从箱线图看来整体也高于客队
使用groupby函数队特定的行名可以分组,但是groubby之后索引就变成行名了所以要用.reset_index()函数重新排序。然后就可以做统计了。
统计了世界杯开始到14年观众的总数得出结论:民众对于世界杯的热情呈明显上升趋势1994年美国世界观众数量历史最高
分组计算出了上下半场的得分情况,然后使用堆叠柱状图展示。得到以下结论:二战后的2届世界杯进球数量同比增多了不少,应该是热情更高涨了。近代02-10年球队疲软了进球数量和80年代差不多下半场进球数量的比例明显高于上半场
计算出了进球总数sumScore=2390
统计得出下表,筛选进球数前10国家。列分别为进球总数,国家名,进球量所占比例
分析个国家得分情况,出场频率,观众数量,获得世界杯冠军次数。
得出结论:巴西德国意大利是世界杯三大热门球队,各项指标都是排前3的(但18年法国赢了世界杯冠军和意大利并列)世界前10国家进球数打进了约世界杯一半的球。共有11支队伍打入世界杯决赛,8支队伍获得过冠军
按由大到小排列
画板figurefacecolor='色值' 背景颜色,色值可以随意设置但是一般用Lightgray好看一些figsize=(x, y)设置长宽dpi=xx 设置画板大小
subplot绘制子图subplot(x,y,z),x,y代表绘制x行,y列个子图,z代表第几个子图subplot绘制子图tight_layout()调整图表间距减少堆叠
figure,subplot实例:
图表类型:bar:柱状图plot:折线图scatter:散点图pie:饼图boxplot:箱线图
其余标记
title:图表标题
xlabel:x轴标题,y轴同理
xlim:x轴最大刻度,y轴同理
xticks;x轴刻度可以设置旋转角度,y轴同理
gird:网格线
可以使用for循环获取数值的坐标来做表格数据的标记:
for _x,_y in zip(x,y):
plt.text(_x,_y,_y,ha='center',va='bottom',size=8)
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。