合并具有相同列的熊猫数据框

时间:2018-09-18 12:28:46

标签: python pandas dataframe merge

我正在尝试合并两个数据框,其中一个包含赛马获胜赔率的详细信息,一个包含位置赔率的细节。它们共享一些相同的列名。我目前在马匹的名字上得到了重复,但赔率我不认识。我认为问题之所以出现,是因为有些比赛没有地方市场,只有胜利市场,这使事情变得混乱。下面是左侧中奖桌的示例,右侧中奖桌。

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,所有这些都为我呈现了一些马名的副本,但赔率我却不认识。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

如果我对您的理解正确,则您的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