我在弄清楚如何添加新列时遇到了麻烦,新列的条目引用了同一数据框的其他多行。
输入数据框:
Date Player1ID Player2ID WinnerID
2018-06-10 a b a
2018-06-11 b c b
2018-06-12 c a a
2018-06-13 b a a
2018-06-14 b b c
2018-06-15 a c c
2018-06-16 b c b
2018-06-17 a c a
2018-06-18 b a a
...
上下文:此数据框的行是运动比赛的结果。我想创建两列,每列分别显示玩家1和玩家2的“当前形式”。为简单起见,我想使用最近N场比赛的游戏数(在示例中为N = 2)下方)表示每个玩家都赢了。
例如,在2018-06-13上,玩家2(ID为'1'的玩家)的状态良好-他们分别于2018-06-12和2018-06-10赢得了前两场比赛。因此,对于该日期,格式指示器p2_Num_wins_last2设置为1。
所需的输出数据帧:
Date Player1ID Player2ID WinnerID p1_Num_wins_last2 p2_Num_wins_last2
2018-06-10 a b a - -
2018-06-11 b c b - -
2018-06-12 c a a - -
2018-06-13 b a a 1 2
2018-06-14 3 b c 0 1
2018-06-15 a c c 2 1
2018-06-16 b c b 0 2
2018-06-17 a c a 1 1
2018-06-18 b a a 1 1
...
我正在尝试使用lapply函数来引用原始示例上方的某些子数据框。
df["p1_Num_wins_last2"] = df.lapply(lambda row: func(row,subDataFrame))
但是要使其正常工作非常困难。需要将此归结为许多玩家,很多日期以及更一般的N个游戏。
任何建议将不胜感激!