python - 合并具有相同列的熊猫数据框
问题描述
我正在尝试合并两个数据框,一个包含赛马获胜赔率的详细信息,另一个包含位置赔率。它们共享一些相同的列名。我目前在马的名字上得到重复,我不认识的几率。我认为问题正在发生,因为有些比赛没有地方市场,只有获胜市场,所以这很令人困惑。下面是左侧获胜表的示例,右侧放置。
Time Horse Odds Result Time Horse Odds_P Result_P
13:55 Go faster 5.0 1 13:55 Go faster 5.0 1
14:10 Slow down 4.0 0
我希望能够将 Odds_P 和 Result_P 添加到获胜数据帧的末尾以更快地进行,并删除没有相应地方市场的条目。
我尝试过 concat、join 和 merge,所有这些都向我展示了一些重复的马名,我不认识的可能性。
任何帮助将不胜感激
解决方案
如果我理解正确,您的 odds_p 数据框如下所示:
Time Horse Odds Result
0 13.55 Go faster 5.0 1
1 14:10 Slow down 4.0 0
result_p 看起来像:
Time Horse Odds_P Result_P
0 13.55 Go faster 5.0 1
我将把odds_p数据框的最后两列重命名为Odds_P和Result_P:
odds_p.rename(columns = {'Odds':'Odds_P', 'Result':'Result_P'}, inplace = True)
现在使用 RIGHT 连接合并两者:
final_p = pd.merge(odds_p, result_p, on = ['Time', 'Horse', 'Odds_P', 'Result_P'], how = 'right')
您的最终输出将如下所示:
Time Horse Odds_P Result_P
0 13.55 Go faster 5.0 1
推荐阅读
- scala - Can Hot Swap be used with Scala?
- azure - Logic Apps Liquid 转换 - 如何测试?
- python - 在 python 的循环中导入某些东西有什么副作用?
- mysql - MySQL 加入 json
- javascript - 使用全屏 API 触发全屏时,双指缩放在 macOS (Chrome) 上不起作用
- ios - Xcode 10 并行测试套件测试速度较慢,测试数量较少
- javascript - 从对象数组中删除
- java - Maven构建期间的Lambda错误
- c# - .net 核心上的 ServerManager
- python - 将python dict数据写入CSV文件