您好,我想根据每个球队的得分而不是球队名称来对德甲联赛表进行排序。有人能帮我吗?目前,我只能按团队名称对问题进行排序。我不知道在for循环后如何对点进行排序。
def push2(self):
#Download Database
urllib.request.urlretrieve(
"http://www.football-data.co.uk/mmz4281/1819/d1.csv",
"2018-19.csv")
#Read Database
df = pd.read_csv("2018-19.csv")
teams = df["HomeTeam"]
teams = teams.drop_duplicates()
teams = teams.sort_values(0, False, False)
teams = teams.tolist()
namesLen = len(teams)
for i in range(0, namesLen):
# Get points through victories
team = df[(df["HomeTeam"] == teams[i]) | (
df["AwayTeam"] == teams[i])]
teamWin = team[((team["FTR"] == "H") & (
team["HomeTeam"] == teams[i])) | (
(team["FTR"] == "A") & (
team["AwayTeam"] == teams[
i]))]
teamTotalPoints = (len(teamWin.index) * 3)
# Get points through draw
teamU = df[(df["HomeTeam"] == teams[i]) | (
df["AwayTeam"] == teams[i])]
teamD = teamU[(team["FTR"] == "D")]
teamDTotal = (len(teamD.index) * 1)
# Total points wins and points draws
teamT = teamTotalPoints + teamDTotal
teamTStr = str(teamT)
print(str( teamTStr + ": " +teams[i] ))
答案 0 :(得分:0)
我建议您仔细阅读Pandas文档,尤其是fscanf()
(链接here)和groupby
(链接here)功能。他们提供了很好的例子,为您提供了所需的答案。有关合并可以提供的更多示例,请查看this article,其中包含大量有关不同组合的示例。
话虽如此,下面是一种仅使用熊猫来产生总进球的方法,以使该联盟中的俱乐部从最高到最低依次排名。
我采取的一些假设:
merge
。dataframe
列中没有错误。只要您的数据框遵循与您列出的链接相同的结构,下面的功能就应该可以重复。
HomeTeam