我希望在数据框中创建一个新列,指示比赛以主场胜利、客场胜利还是平局结束。
这是我当前使用的代码:
for value in df2:
if value in df2['home_goals'] > df2['away_goals']:
df2['result'] = 'H'
elif value in df2['home_goals'] < df2['away_goals']:
df2['result'] = 'A'
else:
df2['result'] = 'D'
这是输出。
Home Team Away Team home_goals away_goals result
Season
2018-2019 Man Utd Leicester 2 1 D
2018-2019 Newcastle Spurs 1 2 D
2018-2019 Bournemouth Cardiff 2 0 D
2018-2019 Fulham Crystal Palace 0 2 D
2018-2019 Huddersfield Chelsea 0 3 D
正如您所看到的,在这种情况下,所有结果都显示为平局,而不是显示主队或客队获胜。
有人可以告诉我我哪里出了问题吗?
谢谢
最佳答案
一种Python式的方法可能是,
import numpy as np
df2['result'] = np.where(df2['home_goals'] > df2['away_goals'], 'H',
np.where(df2['home_goals'] < df2['away_goals'], 'A', 'D'))
使用链式np.where()
命令。
关于python - 为现有值中的新值列创建循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65457544/