首页 > 解决方案 > 熊猫从与 2 列中的日期索引值匹配的现有值计算新值(新列)

问题描述

如果他们是 HomeTeam 或 AwayTeam,我想按日期顺序为每个团队应用一个函数,并加以区分。我想将此值依次存储在每个团队的新列中。例如:当埃弗顿主场比赛时,其进球数与主场超过 5 场滑动窗口比赛的进球数之比。数据框如下所示:

日期 主队 客队 FTHG FTAG FTR 高温高压 HTAG 高温高压 HS
0 1250294400000000000 阿斯顿维拉 维冈 0 2 一个 0 1 一个 11

这是我正在努力的代码:

slider = 5
df=data_games.copy()
team='Everton'
#diff_goals:
def difference(row):
    goals = 0
    if row['HomeTeam'] == team:
        goals = row['FTHG']
        y = row['FTAG']
    elif row['AwayTeam'] == team:
        row['AwayTeam'] == team
        goals = row['FTAG']
        y = row['FTHG']
    return (goals - y)


df['difference'] = df.apply(difference, axis=1).rolling(min_periods=1, window=slider).mean().convert_dtypes('Int')

当然,我想从一个球队列表中执行此操作,无论是主场还是客场比赛,所以最后我将有一个数据框,其中包含为每个团队在连续 5 场比赛中的此函数的值的每次计算添加的列...我确信有一种更好的方法可以通过使用 Groupby 对原始数据框进行切片,但我不确定日期的表现如何,因为保持游戏按顺序排列很重要。提前致谢。

标签: pythonpandasiterationmultiple-columnscalculated-columns

解决方案


推荐阅读