【发布时间】:2019-06-12 14:37:17
【问题描述】:
希望有人能提供建议...
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 - 第一个玩家失败)。每个游戏都是重复的(player_1 变为 player_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,
)
【问题讨论】:
标签: python-3.x pandas dataframe filter