Надеюсь, кто-нибудь поможет советом ...
В df есть таблица:
Axis Player_1 Player_2 RES Aver_RES1 Aver_RES2
1 1 2 0
2 2 1 1
3 1 3 1
4 3 1 0
5 2 4 1
6 4 2 0
7 2 8 1
8 8 2 0
9 1 8 0
10 8 1 0
11 3 5 1
12 5 3 0
13 1 8 1
14 8 1 0
15 1 4 1
16 4 1 0
17 2 1 1
18 1 2 0 0.6667 1
В столбце Player_1, Player_2 закодированы игроки.В RES - результат игры (1 - первый игрок выигрывает, 0 - первый игрок проигрывает).Каждая игра дублируется (игрок_1 становится игроком_2).И мне нужно посчитать, как Player_1 играл к этому моменту, с теми, с кем играл Player_2.А также для Player_2.Например, рассмотрим 18 строчку.Player_1 (1) играл с 3, 4, 8 игроками.Player_2 (2) играл с 4, 8 игроками.Их общие противники - 4, 8 игроков.
Как это может быть (но с заменой ?????):
df['Aver_RES1'] = df.apply(
lambda x: df.loc[
(
& (df.Player_1 == x.Player_1)
& (df.Player_2 == ??????)
),
"RES",
].mean(),
axis=1,
)
df['Aver_RES2'] = df.apply(
lambda x: df.loc[
(
& (df.Player_1 == x.Player_2)
& (df.Player_2 == ??????)
),
"RES",
].mean(),
axis=1,
)