df.columns = df.columns.str.replace('^([^_]+)$', '\\1_team').str.split('_',
    expand=True)
df1 = df.stack(level=0).groupby('team').tail(1)
df2 = df.stack(level=0).join(df1.score, rsuffix='_last').unstack(level=1)
Поиск последнего вхождения в нескольких столбцах в кадре данных