python - 根据日期加入熊猫数据框
问题描述
我有两个数据框,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
我正在尝试合并和连接,但不能完全正确地设置参数
任何帮助表示赞赏
解决方案
使用merge
和map
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
推荐阅读
- javascript - 如何在两个 Jest 测试之间取消元素焦点?
- locust - 蝗虫中的奴隶正在自动断开连接
- reactjs - React - getDerivedStateFromProps - 字段值将加载道具但不会改变
- c++ - 在 c++ 中使用 printf 时出错,无法打开 LNK1104 exe 文件
- opencv - 使用opencv检测形状位置和航向
- python - 如何根据满足某些条件的现有文件创建和重新排列新的 csv 文件?
- python-3.x - 从 App Engine 的 python 代码将数据插入 Cloud SQL for MySQL
- jupyter-notebook - 在 AWS Sagemaker 上安装 Jupytext 插件
- java - 如何使用类?
- angular - 如何强制更新托管在 Firebase 上并与 FireStore 一起使用的无服务器 Angular SPA PWA