【问题标题】:How to write a function that returns two variable from a dataframe如何编写一个从数据框中返回两个变量的函数
【发布时间】:2020-07-31 19:43:04
【问题描述】:

所以我目前正在从事学校的一个项目。

这是我的数据框。

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 分。

我正在努力解决这个问题,目前我想不出一个办法来提出这个问题。有人可以帮帮我吗?

【问题讨论】:

  • 你能分享一下你目前写的代码吗?

标签: python pandas


【解决方案1】:

您可以定义自定义函数并与pandas.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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 2021-09-20
    • 2014-08-04
    相关资源
    最近更新 更多