这是我的问题。在2015年MLB对决的ML项目的背景下,我有两个数据帧:
一个数据框,其中包含2015赛季的比赛详情,以及我预测模型的结果(下图)。
还有另一个数据框,还有2015赛季的比赛细节以及每支球队在特定比赛中的奇数。
我的目标是使用匹配详细信息列合并两个数据框作为键(" Visitor_Team"," V_Team_PTS"," Home_Team",H_Team_PTS)以获得赔率并且我的模型的结果对应于每个对应(每个观察)以供进一步分析。
所以我尝试了以下代码:
df = pd.merge(model_df, odds_df, on = ['Visitor_Team','V_Team_PTS', 'Home_Team','H_Team_PTS'], how = "inner")
它适用于作业的主要部分,但它为我提供了额外的行,因为" merge()"在两个数据帧中查找匹配时,函数不会考虑订单。 所以让我们想象一下如下比赛:
V_Team V_PTS H_Team H_PTS Conf V_Odds H_Odds Date
NYY 3 ARI 4 0.6532 1.45 1.98 06/04/2015
当我实现这个功能的时候,它也会在这两支球队相遇的情况下进行比赛,并且只要相同的分数(无论顺序是3-4,4-3)是否存在并在同一天创建新的一行,具有不同的赔率(这需要其他游戏的赔率)。
所以,我有这样的额外行(只有奇数值不同):
V_Team V_PTS H_Team H_PTS Confidence V_Odds H_Odds Date
NYY 3 ARI 4 0.6532 1.45 1.98 06/04/2015
NYY 3 ARI 4 0.6532 1.75 2.04 06/04/2015
NYY 3 ARI 4 0.6532 2.32 1.45 06/04/2015
以下是一个例子:
这实际上没有任何意义。尽管对熊猫文档进行了大量研究,但我还是没有弄清楚如何避免这种半复制"。有没有人有想法?任何帮助将不胜感激。