Python熊猫:添加新列,其中每一行都取决于较早的行

时间:2018-10-22 22:19:29

标签: python pandas

我在弄清楚如何添加新列时遇到了麻烦,新列的条目引用了同一数据框的其他多行。

输入数据框:

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个游戏。

任何建议将不胜感激!

0 个答案:

没有答案