首页 > 解决方案 > 根据日期加入熊猫数据框

问题描述

我有两个数据框,df1 和 df2

df1:

Player_A    Player_B    Date
  Sam         Casey     10/4
  Steve       Sam       11/4
  Casey       Steve     12/4

df2:

Player    Date    Count
 Sam      10/4      5
 Casey    10/4      3
 Steve    11/4      4
 Sam      11/4      4
 Casey    12/4      4
 Steve    12/4      5

我的目标是在 df1 中添加两个新列,“Count_A”和“Count_B”,从 df2 中提取每个玩家的计数

所以我的输出是这样的:

Player_A    Player_B    Date    Count_A     Count_B
  Sam         Casey     10/4      5            3
  Steve       Sam       11/4      4            4
  Casey       Steve     12/4      4            5

我正在尝试合并和连接,但不能完全正确地设置参数

任何帮助表示赞赏

标签: pythonpandas

解决方案


使用mergemap

df3 = df2.merge(df1, on='Date')
df1['Count_A'] = df1.Player_A.map(df3[df3.Player_A == df3.Player].set_index('Player_A')['Count'])
df1['Count_B'] = df1.Player_B.map(df3[df3.Player_B == df3.Player].set_index('Player_B')['Count'])

Out[697]:
  Player_A Player_B  Date  Count_A  Count_B
0      Sam    Casey  10/4        5        3
1    Steve      Sam  11/4        4        4
2    Casey    Steve  12/4        4        5

推荐阅读