Мои данные находятся в формате CSV, как это
ID Date Year Home Team Away Team HP AP
1 09/02 1966 Miami Oakland 14 23
2 09/03 1966 Houston Denver 45 7
3 09/10 1966 Oakland Houston 31 0
4 09/27 1966 Houston Oakland 18 10
5 10/20 1966 Oakland Houston 21 18
В каждой строке я хочу суммировать ранее накопленные очки хозяев и гостей как для домашней, так и для выездной команды.
Я использовал групповых панд, чтобы получить домашние очки для домашней команды и выездные очки для команды гостей, как показано ниже
df1['HT_HP']=df1.groupby('Home Team')['HP'].apply(lambda x : x.shift().cumsum())
Но я не могу сделать это, чтобы получитьранее набранные очки для хозяев поля и ранее забитые очки хозяев поля для гостей.
так что для первой игры Окленд Хьюстон будет столбец с Оклендом в 23 очка на выезде и отдельный столбец для 45 домашних очков Хьюстона
Expected outcome:
ID Date Year Home Team Away Team HP AP HT_AP AT_HP
1 09/02 1966 Miami Oakland 14 23 NaN NaN
2 09/03 1966 Houston Denver 45 7 NaN NaN
3 09/10 1966 Oakland Houston 31 0 23 45
4 09/27 1966 Houston Oakland 18 10 0 31
5 10/20 1966 Oakland Houston 21 18 33 63
Я пробовал это
df1['HT_AGS'] = df1.where(df1['AwayTeam']==df1['HomeTeam']).groupby('HomeTeam')['FTHG'].apply(lambda x : x.shift().cumsum())
Возвращает полный столбец значений NaN
В Excel это будет что-то похожее на sumifs (F1: F3, D1: D3, E4)