【发布时间】:2020-01-19 14:57:54
【问题描述】:
我有一个用 pandas 阅读的 csv: 数据是这样的
home_team away_team home_score away_score
Scotland England 0 0
England Scotland 4 2
Scotland England 2 1
... ... ... ...
我想编写一个带有两个参数的函数 - 两个团队。 它会输出 team1、team2 赢了多少场比赛,以及有多少场平局比赛
我尝试比较分数,但不确定当同一支球队可能同时出现在主客场列时,我将如何编码
def who_won(team1, team2):
home = data['home_team']
away = data['away_team']
home_score = data['home_score']
away_score = data['away_score']
counter_won = 0
counter_lost = 0
counter_draw = 0
for item in range(len(data['home_team'])):
if home_score > away_score:
home.append(counter_won)
counter_won = counter_won + 1
elif home_score < away_score:
home.append(counter_won)
counter_lost = counter_lost + 1
else:
counter_draw = counter_draw + 1
但我不确定我应该如何继续比较比赛并计算每次赢、输或平的次数。
期望的输出是
England won 1 time versus Scotland
Scotland won 1 time versus England
Scotland and England had one draw
【问题讨论】:
-
如果您使用的是 Pandas,那么它们是数据框,而不是列表。
-
您的函数采用名为
home和away的参数,但如果您并不真正关心哪个球队是主队,哪个队是客队,那么这些参数名称会产生误导。也许将它们命名为team1和team2会更好。 -
此外,参数值会立即丢失,因为您分配了具有相同名称的局部变量。
-
是的,有道理,谢谢,会编辑问题。
-
所以无论
home - away如何,您都在计算匹配项?
标签: python pandas list comparison