32探索性数据分析 |
您所在的位置:网站首页 › nfl球队所在城市 › 32探索性数据分析 |
唐宇迪《python数据分析与机器学习实战》学习笔记 32探索性数据分析-足球赛事数据集 原始数据:链接,提取码:yypl 一、数据介绍、导入及查看数据包含球员和裁判的信息,2012-2013年的比赛数据,总共设计球员2053名,裁判3147名,特征列表如下: (146028, 28)
playerShort object player object club object leagueCountry object birthday object height float64 weight float64 position object games int64 victories int64 ties int64 defeats int64 goals int64 yellowCards int64 yellowReds int64 redCards int64 photoID object rater1 float64 rater2 float64 refNum int64 refCountry int64 Alpha_3 object meanIAT float64 nIAT float64 seIAT float64 meanExp float64 nExp float64 seExp float64 dtype: object 1.4 查看并提取列名 all_columns = df.columns.tolist() all_columns[‘playerShort’, ‘player’, ‘club’, ‘leagueCountry’, ‘birthday’, ‘height’, ‘weight’, ‘position’, ‘games’, ‘victories’, ‘ties’, ‘defeats’, ‘goals’, ‘yellowCards’, ‘yellowReds’, ‘redCards’, ‘photoID’, ‘rater1’, ‘rater2’, ‘refNum’, ‘refCountry’, ‘Alpha_3’, ‘meanIAT’, ‘nIAT’, ‘seIAT’, ‘meanExp’, ‘nExp’, ‘seExp’] 思考问题,加入一个运动员出现多次,计算时相当于其权重加强,所以可以用groupby解决这个问题: print(df['height'].mean()) print(np.mean(df.groupby('playerShort').heighan()))181.93593798236887 181.74372848007872 二、数据切分模块(Tidy Data)数据通常具有多特征高纬度,分析时统计指标不同,因此可以将其分为几个小的数据集单项分析。例如:单看球员、裁判,看球员-裁判关系,单看国家… 2.1切分球员数据2.1.1数据切分 #切分出球员数据,及其相关特征数据 player_index = 'playerShort' #球员ID player_cols = [#'player', #球员名字丢弃,因为有对应ID了 'birthday', 'height', 'weight', 'position', 'photoID', 'rater1', 'rater2', ]2.1.2检测及去重 #数据检测,避免复制错误、重名等影响 all_cols_unique_players = df.groupby('playerShort').agg({ col:'nunique' for col in player_cols}) all_cols_unique_players.head() #为1就是出现一次,为2就是重复了,这里数据干净
函数调用 players = get_subgroup(df, player_index, player_cols) players.head()
Test-passed: we recover the equivalent subgroup dataframe. 储存成功 club leagueCountry FC Nürnberg Germany FSV Mainz 05 Germany 1899 Hoffenheim Germany AC Ajaccio France AFC Bournemouth EnglandEngland 48 Spain 27 France 22 Germany 21 Name: leagueCountry, dtype: int64 Test-passed: we recover the equivalent subgroup dataframe. 2.3 切分裁判-国家关系 referee_index = 'refNum' referee_cols = ['refCountry'] referees = get_subgroup(df, referee_index, referee_cols)#检测去重 referees.head() print |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |