Разница забитых и пропущенных голов в Кубке Мира 2018 года

1

У меня есть набор данных World Cup 2018 от kaggle. Чемпионат мира ФИФА статистика

В этом наборе данных каждая строка представляет собой не совпадение, а команду и ее результаты в игре.

Например:

Изображение 174551

Как я могу рассчитать разницу в цели каждой команды из этого набора данных. Я имею в виду, есть ли более простой способ или панда.

Мой расчет таков:

goal_diff = {}
teams = df["Team"].unique()
for t in teams:
    goal_diff[t] = df[df["Team"] == t]["Goal Scored"].sum() \
                 - df[df["Opponent"] == t]["Goal Scored"].sum()

Спасибо за ваши ответы.

Теги:
pandas
dataframe

2 ответа

3

Вы можете агрегировать по GroupBy.sum, вычесть и последний конвертировать в dict:

goal_diff = ((df.groupby('Team')["Goal Scored"].sum() - 
              df.groupby('Opponent')["Goal Scored"].sum()).to_dict())
print (goal_diff)

{'Argentina': -3, 'Australia': -3, 'Belgium': 10, 
 'Brazil': 5, 'Colombia': 3, 'Costa Rica': -3, 
 'Croatia': 5, 'Denmark': 1, 'Egypt': -4, 
 'England': 4, 'France': 8, 'Germany': -2, 
 'Iceland': -3, 'Iran': 0, 'Japan': -1, 
 'Korea Republic': 0, 'Mexico': -3, 'Morocco': -2,
 'Nigeria': -1, 'Panama': -9, 'Peru': 0,
 'Poland': -3, 'Portugal': 0, 'Russia': 4, 
 'Saudi Arabia': -5, 'Senegal': 0, 'Serbia': -2, 
 'Spain': 1, 'Sweden': 2, 'Switzerland': 0, 
 'Tunisia': -3, 'Uruguay': 4}
  • 0
    Этот подходит. Спасибо!
  • 0
    @Ceyhun - Добро пожаловать!
0

если вы суммируете забитую команду командой Team, вы получаете количество забитых этой командой очков. если вы суммируете забитую комбинацию очков противником, вы получаете количество очков, полученных этой командой. общая разница целей - разница между ними.

df.groupby("Team").sum()["Goal Scored"] - df.groupby("Opponent").sum()["Goal Scored"]
  • 1
    что это добавляет, чего нет в существующем ответе?
  • 0
    ничего. Я писал и не понял, что новый комментарий был опубликован

Ещё вопросы

Сообщество Overcoder
Наверх
Меню