python - 熊猫从与 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 对原始数据框进行切片,但我不确定日期的表现如何,因为保持游戏按顺序排列很重要。提前致谢。
解决方案
推荐阅读
- bash - ffmpeg:在while循环中执行命令
- java - 如何使用 ActiveMQ 消费来自虚拟主题的消息?
- typescript - Vuex商店更新未在组件中应用重新渲染
- react-native - 如何在抽屉导航屏幕中传递参数?
- nginx - 有关 Nginx 如何在 Google 计算引擎上使用 SSL 的详细信息
- r - R中混合lmer模型的警告消息
- react-native - react-native-admob:compileDebugJavaWithJavac 失败
- python - 如何配置 Python 并组织我的解释器?
- docker - 从 Liferay 7.3 中的角色删除权限
- video - 使用 ffmpeg 进行动态转码和 HLS 流式传输