如何统计多份Pandas DataFrame中player_x击败player_y的次数?
统计玩家对战胜负次数
数据背景
我有一个包含四名玩家所有两两组合的DataFrame:
players_combinations # player_x player_y --- -------- -------- 0 player_1 player_2 1 player_1 player_3 2 player_1 player_4 3 player_2 player_3 4 player_2 player_4 5 player_3 player_4
同时还有多个记录单局游戏玩家名次的DataFrame:
game_1 # player place --- -------- ----- 0 player_1 2 1 player_2 3 2 player_3 1 game_2 # player place --- -------- ----- 0 player_2 2 1 player_3 1 game_3 # player place --- -------- ----- 0 player_1 3 1 player_2 1 2 player_4 2
需求说明
需要统计所有游戏中,player_x的place值小于player_y的次数(即player_x击败player_y的次数,记为won),以及player_x的place值大于player_y的次数(即player_x输给player_y的次数,记为lost)。
预期结果
result # player_x player_y won lost --- -------- -------- -------- -------- 0 player_1 player_2 1 1 1 player_1 player_3 null 1 2 player_1 player_4 null 1 3 player_2 player_3 null 2 4 player_2 player_4 1 null 5 player_3 player_4 null null
结果解释
- 第0行:player_1击败player_2 1次,输给player_2 1次。
- 第1行:player_1从未击败player_3,输给player_3 1次。
- 第2行:player_1从未击败player_4,输给player_4 1次。
- 第3行:player_2从未击败player_3,输给player_3 2次。
- 第4行:player_2击败player_4 1次,从未输给player_4。
- 第5行:player_3与player_4从未对战过。
内容的提问来源于stack exchange,提问作者mauriciokaminski
相关产品推荐
相关产品推荐

