所以我目前正在学校做一个项目。
这是我的数据帧。
Div Date Time HomeTeam AwayTeam FTHG FTAG FTR HTHG HTAG ... AvgC<2.5 AHCh B365CAHH B365CAHA PCAHH PCAHA MaxCAHH MaxCAHA AvgCAHH AvgCAHA
0 E0 09/08/2019 20:00 Liverpool Norwich 4 1 H 4 0 ... 3.43 -2.25 1.91 1.99 1.94 1.98 1.99 2.07 1.90 1.99
1 E0 10/08/2019 12:30 West Ham Man City 0 5 A 0 1 ... 2.91 1.75 1.95 1.95 1.96 1.97 2.07 1.98 1.97 1.92
2 E0 10/08/2019 15:00 Bournemouth Sheffield United 1 1 D 0 0 ... 1.92 -0.50 1.95 1.95 1.98 1.95 2.00 1.96 1.96 1.92
3 E0 10/08/2019 15:00 Burnley Southampton 3 0 H 0 0 ... 1.71 0.00 1.87 2.03 1.89 2.03 1.90 2.07 1.86 2.02
4 E0 10/08/2019 15:00 Crystal Palace Everton 0 0 D 0 0 ... 1.71 0.25 1.82 2.08 1.97 1.96 2.03 2.08 1.96 1.93
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
283 E0 07/03/2020 15:00 Wolves Brighton 0 0 D 0 0 ... 1.74 -0.75 1.98 1.92 2.01 1.92 2.03 1.99 1.94 1.93
284 E0 07/03/2020 17:30 Burnley Tottenham 1 1 D 1 0 ... 1.74 0.00 1.95 1.95 1.96 1.97 2.00 2.01 1.94 1.92
285 E0 08/03/2020 14:00 Chelsea Everton 4 0 H 2 0 ... 2.13 -0.50 1.85 2.05 1.88 2.04 2.00 2.11 1.86 2.01
286 E0 08/03/2020 16:30 Man United Man City 2 0 H 1 0 ... 1.97 0.75 1.87 2.03 1.85 2.07 1.91 2.11 1.87 2.01
287 E0 09/03/2020 20:00 Leicester Aston Villa 4 0 H 1 0 ... 2.28 -1.00 1.85 2.05 1.88 2.05 1.91 2.08 1.86 2.01
我被要求编写一个函数,该函数取一行并返回两个变量,即FTHG和FTAG列中主队和客场球队的点数。
该项目还增加了
积分计算规则如下:如果两支球队在比赛结束时进球数相同,则各得1分。否则,进球越多的球队得3分,而输球的球队得0分。
我正在为这个问题而挣扎,目前我想不出想出这个问题的方法。有人能帮我吗?
您可以定义一个自定义函数并与panda一起使用。DataFrame.apply:
def give_point(row):
if row['FTHG'] > row['FTAG']:
row['PointsHG'] = 3
row['PointsAG'] = 0
elif row['FTHG'] < row['FTAG']:
row['PointsHG'] = 0
row['PointsAG'] = 3
else:
row['PointsHG'] = 1
row['PointsAG'] = 1
return row
df = df.apply(lambda row: give_point(row), axis=1)