合并两个具有多个的数据框

时间:2018-07-18 13:28:18

标签: python pandas merge

我正在将两个数据框合并到公共标题“ COUNTERPARTYNAME”下。因此,以下是我的df5的示例:

    CONTRACT                COUNTERPARTYNAME           TERM
0     450                          A                      300

1     400                          A                      350

2     270                          B                      600

3     360                          C                      300
...

和df6:

    COUNTERPARTYNAME          CBA               DAN
0           A                     500               10

1           B                     300               3

2           C                     400               9

3           D                     650               10

...

但是基本上两个数据帧都共享COUNTERPARTYNAME,但是df5中某些cpty的倍数。我正在尝试将两者合并,以便将它们合并到新的df中,并且对于每个cpty,CBA和DAN都会显示在其旁边,包括倍数。

我的预期结果如下:

 CONTRACT               COUNTERPARTYNAME           TERM        CBA     DAN
0     450                          A               300         500     10

1     400                          A               350         500     10

2     270                          B               600         300     3

3     360                          C               300         400     9
...

我了解如何将它一对一地合并,就像在df5中只有一个A,B,C等...,就像在df6中一样。

但是,当我尝试过:

df7=pd.merge(df5, df6), 

希望他们将在COUNTERPARTYNAME上合并,然后打印出来,我在某些cpty上的许多数据消失了,而其他cpty的弹出次数超过了他们在df5中实际显示的次数。例如,我在df5中有2个A和2个B,但是当我合并时,由于某种原因,我现在有0个A,就像6个B。 CBA和DAN是正确的,并且是相对应的,但是我觉得由于某些原因我丢失了一些数据。有没有办法解决这个问题?我执行的合并类型错误吗?

1 个答案:

答案 0 :(得分:0)

您需要明确说明要合并的列。另外,您还必须使用merge,如下所示。

df7 = df5.merge(df6, on=['COUNTERPARTYNAME'])

输出:

  CONTRACT COUNTERPARTYNAME TERM  CBA DAN
0      450                A  300  500  10
1      400                A  350  500  10
2      270                B  600  300   3
3      360                C  300  400   9