phython 从表格中提取特定信息和以图形的方式呈现数据2
为了更方便理解,因此我这里也是用一道比之前稍微复杂一点的例题和它的标准解法参杂着知识点来讲解
import numpy as np
!pip install footballdata
import sys, os
sys.path.insert(0, os.path.expanduser("~/.local/lib/python3.8/site-packages"))
import footballdata
footballdata模块使用另一个名为pandas的python模块。Pandas是一个数据科学模块,它提供了强大的方法来操作和查询存储在称为dataframes的类似电子表格的结构中的数据。
我们将使用2014年至今英超联赛所有比赛的数据。
games = footballdata.MatchHistory("ENG-Premier League", range(2014, 2019)).read_games()
games.columns
print(games)
games
是一个数据帧对象。它有点像一个电子表格,每个游戏的数据存储在一个单独的行中。每一行由若干个标题列组成。可用的列名存储在“games.columns”列表中。执行单元格以查看它们;如果我们打印游戏,我们将看到完整数据集的一小部分。
选择列,我们可以通过使用列名索引dataframe来选择一列数据。
hthg = list(games["HTHG"])
print(hthg)
Pandas提供了一种简单的方法来过滤数据。例如,选择“主队”为“利物浦”的比赛
liverpool_games = games[games["home_team"] == "Liverpool"]
liverpool_games = games[games["home_team"] == "Liverpool"]
liverpool_hthg = list(liverpool_games["HTHG"])
print(liverpool_hthg)
把这些放在一起,我们可以找回上半场利物浦在所有比赛中的主场进球
我们可以构建所有主队的名字集
teams_set = set(games["home_team"])
teams = list(teams_set)
for team in teams:
mg = np.mean(games[games["home_team"] == team]["HTHG"])
print(team, mg)
np.maen 这个是在求整个主队符合HTHG情况的平均值
得分最高的比赛是什么?
total_goals = list(games["FTHG"] + games["FTAG"])
highest_score = np.max(total_goals)
highest_score_index = np.argmax(total_goals)
game = games.iloc[highest_score_index]
print(highest_score, "(Home Team", game["FTHG"], ", Away Team", game["FTAG"], ")")
print(game)
属性DataFrame.iloc,纯粹基于整数位置的按位置选择索引。
.iloc[]主要基于整数位置(从轴的0到长度-1),但也可以与布尔数组一起使用。
一个可调用函数,具有一个参数(调用序列或数据帧),并返回有效的索引输出(上述参数之一)。当您没有对调用对象的引用,但希望根据某个值进行选择时,这在方法链中非常有用。