探索性数据分析—赛事数据集(Ⅰ)
文章目录
- 引言
- 数据集内容
- 数据集特征表:
- 数据集预览
- 对数据数据预处理
- 实现思路
- 预处理程序与结果
- 引用约定
- 建表(dataframe)与生表的函数
- 建立球员(raw_players)数据集
- 建立俱乐部(raw_clubs)数据集
- 建立裁判(raw_referees)数据集
- 建立赛事情况(raw_dyads)的数据集
- 建立国籍种族歧视调查(raw_countrys)数据集
- 实现结果
- 烦si
- 一段段子
引言
学过一点点有关python的数据分析的知识后,稍稍有些坐不住,便找来一数据集进行练手,找点成就感。笔者的主要研究内容:通过一个赛事数据,利用数学方法,分析影响裁判判罚有哪些因素;如种族歧视、国籍歧视、球员因素等。
数据集链接赛事数据
数据集内容
这个数据集主要是关于足球赛事的一个数据集,2012_2013的赛事数据,包括2053名球员,3147名裁判的数据,数据内容如下图。
数据集特征表:
series | 我的翻译 |
---|---|
playershort | ID |
player | (name) |
club | 俱乐部 |
leagueCuonty | 俱乐部国籍 |
height\weight | 身高体重 |
position | 所踢位置 |
rater1、2 | 值越大肤色越黑 |
yellowcard | 黄牌数 |
yellowred | 黄转红数 |
redcard | 红牌数 |
goals | 进球数 |
defeats\victores\tie | 输胜平 |
games | 上场数 |
refNum\County | 裁判的ID国籍 |
IAT/Exp | 内应测试??(用于判定该国是否有种族歧视倾向) |
数据集预览
df=pd.read_csv("redcard.csv")
print(df.shape)
print(df.head())
#对数据预览
a=df.describe().T
print(a)
#查看特征
all_columns=df.columns.tolist()
print(all_columns)
#查看一些统计数据
print(df['height'].mean())
print(df['weight'].mean())
实现结果:
数据大小与前五行内容:
简单的预览:
对数据数据预处理
实现思路
数据集的有效数据有1344万多条的数据,每行数据包含28列信息,因此在实现研究问题是时,需要对其进行一定的清洗处理(以数据切割(tidy data)为主)。这里笔者分别将裁判、球员、俱乐部、赛事情况信息分别进行提取、建表,便于后期数据分析。具体思路如下脑图所示:
预处理程序与结果
引用约定
#from __future__ import absolute_import, division, print_function
import matplotlib as mpl
# from matplotlib import pyplot as plt
# from matplotlib.pyplot import GridSpec
# import seaborn as sns
import numpy as np
import pandas as pd
import os, sys
from tqdm import tqdm
import warnings
warnings.filterwarnings('ignore')
#sns.set_context("poster", font_scale=1.3)import missingno as msno
#可用于统计缺失的情况
import pandas_profilingfrom sklearn.datasets import make_blobs
import time
#2012-2013年的足球比赛数据共计球员2053名,裁判3147名
建表(dataframe)与生表的函数
#对数据进行切割划分Tidy Data并生成处理好了的数据集
def get_subgroup(dataframe, g_index, g_columns):"""Helper function that creates a sub-table from the columns and runs a quick uniqueness test."""g = dataframe.groupby(g_index).agg({col: 'nunique' for col in g_columns})if g[g > 1].dropna().shape[0] != 0:print("Warning: you probably assumed this had all unique values but it doesn't.")return dataframe.groupby(g_index).agg({col: 'max' for col in g_columns})
#定义一个以g_index为键值,g_column为series的tabledef save_subgroup(dataframe, g_index, subgroup_name, prefix='raw_'):save_subgroup_filename = "".join([prefix, subgroup_name, ".csv"])dataframe.to_csv(save_subgroup_filename, encoding='UTF-8')test_df = pd.read_csv(save_subgroup_filename, index_col=g_index, encoding='UTF-8')# Test that we recover what we send inif dataframe.equals(test_df):print("Test-passed: we recover the equivalent subgroup dataframe.")else:print("Warning -- equivalence test!!! Double-check.")
#将table以csv文件形式存储
建立球员(raw_players)数据集
#生成关于运动员的数据集
player_index='playerShort'
player_cols=['birthday','height','weight','position','photoID','rater1','rater2',]
all_cols_unique_players=df.groupby('playerShort').agg({col:'nunique'for col in player_cols})#相当于对其进行计数,运动员一共出现了多少次
print(all_cols_unique_players.head())players=get_subgroup(df,player_index,player_cols)
print(players.head())
players = get_subgroup(df, player_index, player_cols)
print(players.head())
save_subgroup(players, player_index, "players")
建立俱乐部(raw_clubs)数据集
#生成关于俱乐部(Clubs)的数据集
club_index = 'club'
club_cols = ['leagueCountry']
clubs = get_subgroup(df, club_index, club_cols)
print(clubs.head())
print(clubs['leagueCountry'].value_counts())
save_subgroup(clubs,club_index,"clubs")
建立裁判(raw_referees)数据集
#生成关于教练的数据集
referee_index = 'refNum'
referee_cols = ['refCountry']
referees = get_subgroup(df, referee_index, referee_cols)
print(referees.head())
print(referees['refCountry'].value_counts())
print(referees.refCountry.nunique())#教练分别来自于哪些国家
print(referees.shape)
save_subgroup(referees, referee_index, "referees")
建立赛事情况(raw_dyads)的数据集
dyad_index = ['refNum', 'playerShort']
dyad_cols = ['games','victories','ties','defeats','goals','yellowCards','yellowReds','redCards',]
dyads = get_subgroup(df, g_index=dyad_index, g_columns=dyad_cols)
save_subgroup(dyads, dyad_index, "dyads")
print(dyads[dyads.redCards > 1].head(10))
建立国籍种族歧视调查(raw_countrys)数据集
#生成关于国家的数据
country_index = 'refCountry'
country_cols = ['Alpha_3', # rename this name of country'meanIAT','nIAT','seIAT','meanExp','nExp','seExp',]
countries = get_subgroup(df, country_index, country_cols)
#countries.head()
save_subgroup(countries, country_index, "countries")
实现结果
烦si
对于数据集处理时主要用到的pandas包有了进一步的了解理解,现阶段认为其是建模时的数据库处理,可以尝试用其进行操作。
一段段子
一年级的小明对语文课上老师布置的造句作业是百思不得其解啊,(老师要求大家用词语:党、祖国、社会、人民进行造句。)于是跑去向找下班回来的爸爸求助。明爸:“儿子啊,这个简单嘛,你这样,就把祖国当做你奶奶、把党当做你老爸我,社会当做你老妈、这人民嘛,自然就是你啦。”
到了晚上,小明依旧没有完成自己的造句作业,于是跑去房间找爸爸,来到爸爸房间,只见房门虚掩,明爸明妈正在房中造明第,这可小明吓得不轻,于是跑回到楼上找奶奶,小明哭着叫奶奶,但是奶奶房门紧闭已然睡熟,没有听见。小明只好又哭着回到自己的房间,说巧不巧,来了灵感,一下纸就把句子照完了。
第二天,在语文课上,语文老师王娇兰夸小明的句子造的好那是一个好啊,小小年纪就有忧国忧民的思想,还当着全班同学的面把它读了一遍:党欺负着社会,祖国在沉睡,人民在哭泣。。。
帮了大忙的参考:程序源自
探索性数据分析—赛事数据集(Ⅰ)相关推荐
- 泰坦尼克数据集预测分析_探索性数据分析-泰坦尼克号数据集案例研究(第二部分)
泰坦尼克数据集预测分析 Data is simply useless until you don't know what it's trying to tell you. 除非您不知道数据在试图告诉您 ...
- 32探索性数据分析-足球赛事数据集(含数据)
唐宇迪<python数据分析与机器学习实战>学习笔记 32探索性数据分析-足球赛事数据集 原始数据:链接,提取码:yypl 一.数据介绍.导入及查看 数据包含球员和裁判的信息,2012-2 ...
- R语言explore包进行探索性数据分析实战(EDA、exploratory data analysis):基于iris数据集
R语言explore包进行探索性数据分析实战(EDA.exploratory data analysis):基于iris数据集 目录
- 泰坦尼克数据集预测分析_探索性数据分析—以泰坦尼克号数据集为例(第1部分)
泰坦尼克数据集预测分析 Imagine your group of friends have decided to spend the vacations by travelling to an am ...
- iris数据集 测试集_IRIS数据集的探索性数据分析
iris数据集 测试集 Let's explore one of the simplest datasets, The IRIS Dataset which basically is a data a ...
- VOC2012数据集的探索性数据分析(EDA)
对VOC2012数据集的探索性数据分析.文章结尾有EDA python代码和Github EDA代码仓库(包含多个数据集EDA代码). 运行结果日志:包括训练集\验证集的图片数,目标数,各尺寸目标数以 ...
- python-探索性数据分析-足球赛事数据集
探索性数据分析 有趣的数据集,包含球员和裁判间的故事 任务 代码集 有趣的数据集,包含球员和裁判间的故事 任务 探索性数据分析(EDA),挑战的目标,这些裁判在给红牌的时候砸想的呢,会不会跟球员的肤色 ...
- 探索性数据分析:银行信贷数据集
作者:黄天元,复旦大学博士在读,目前研究涉及文本挖掘.社交网络分析和机器学习等.希望与大家分享学习经验,推广并加深R语言在业界的应用. 邮箱:huang.tian-yuan@qq.com 前言 本文为 ...
- 利用python进行探索性数据分析(EDA):以Kaggle泰坦尼克号数据集为例
利用Python进行探索性数据分析(EDA)
最新文章
- 10年内,这19个关键技术将改变世界!
- python prophet 预言家预知未来
- 2016猴年春节有感
- REVERSE-PRACTICE-CthulhuOJ
- 你真的理解零拷贝了吗?
- Golang——map集合初始化、键值操作、map作为函数参数的使用
- 老男孩Linux架构师实战课程14期教程
- Python实战项目(一)刷网页访问量程序
- 高中生物神经系统的组成,初中生物神经系统考题
- 中国AFC自动售检票机市场发展形势与需求潜力预测报告2022-2027年
- html视频倍速播放,如何让网页视频倍速播放
- Ubuntu 制作离线软件安装包
- 数据结构与算法 知识点总结(中)---线性表,堆栈,队列
- 负载阻抗、感抗、容抗
- python123第四周_百度杯十月第四周WriteUp
- 饿了么即时配送分流的可运营架构演变
- zabbix4.4 使用自动发现监测web网站健康状态(通过mysql表获取web地址)
- 微信扫码登陆在chrome浏览器被拦截
- HtmlUnit的入门教程整理
- USB RNDIS实现