Python 将两个数据帧与其中一个数据帧中的多个数据帧合并
我正在将两个数据帧合并到公共标题“COUNTERPARTYNAME”下。下面是我的df5示例:Python 将两个数据帧与其中一个数据帧中的多个数据帧合并,python,pandas,merge,Python,Pandas,Merge,我正在将两个数据帧合并到公共标题“COUNTERPARTYNAME”下。下面是我的df5示例: CONTRACT COUNTERPARTYNAME TERM 0 450 A 300 1 400 A 350 2 270
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
...
但实际上,两个数据帧都共享对方名称,但在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
...
我知道如何将它合并为一对一,就像只有一个A、B、C等等。。。在df5中,就像在df6中一样
但是,当我尝试时:
df7=pd.merge(df5, df6),
希望他们能在对方的名字上合并,然后打印出来,我在某些cpty上的很多数据就消失了,而其他cpty的弹出比他们在df5中实际显示的要多。例如,我在df5中有2个A和2个B,但当我合并时,出于某种原因,我现在有0个A和6个B。CBA和DAN是正确的,而且是相应的,但我觉得我因为某种原因丢失了一些数据。有没有办法纠正这个问题?我是否执行了错误的合并类型?您需要明确说明要在哪一列上执行合并。此外,您还必须按以下方式使用
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
你能展示预期的结果吗?是的,请看编辑的,我期望的,或希望的结果,现在已经包括在内了,伙计,停下来,至少试着做好你的工作。说真的,看看你的帮助历史,throway172。每次你遇到一个特定的查询问题,你都会来这里发布一个关于它的问题。我在你的历史记录中看到过几篇关于同一个精确查询的帖子——每一篇都是关于你需要进行的增量更改/修复的——是的,出于某种原因,这仍然给了我相同的输出。嗯,我不知道为什么。那是什么输出@我得到了所有相关的专栏,所以合并是可行的,但我所有的A交易对手都消失了,还有一些其他的。基本上看起来合并成功了,但我从df5获得的一些数据在事务中丢失了。在两个df的“我正在合并”中,在“对方名称”下会弹出“A”,但在实际合并中,“A”会出现,这很奇怪。您确定
COUNTERPARTYNAME
中没有尾随空格或前导空格吗?在合并之前,请尝试df5.COUNTERPARTYNAME=df5.COUNTERPARTYNAME.apply(lambda x:x.strip())
。也可能是df6的条带吗?我对这两个条带都做了条带,得到了错误“float对象没有属性”“条带”