在非equ键上合并数据帧

2024-04-26 23:41:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有A桌:

 A = pd.DataFrame({'a':[1,2,3,4,5],
                       'b':['II','I','I','III','II'],
                       'c':['I', 'II', 'II', 'III', 'II'],
                       'd':[0,2,0,2,0],
                       'e':[0,2,0,3,0],
                       'f':[0,3,0,4,0],})

简而言之,我想用pandas编写以下SQL代码:

^{pr2}$

问题是:我不知道(我找不到),如何用pd.merge实现3、4和最后一个条件。 前两个很简单

MERGED = A.merge(A, how = 'left', on = ['b', 'c'] ,suffixes=('', '_r'))

所以结果应该是:

B = pd.DataFrame({'a':[1,2,3,4,5],
                       'b':['II','I','I','III','II'],
                       'c':['II', 'II', 'II', 'III', 'II'],
                       'd':[1,2,0,2,0],
                       'e':[0,2,0,3,0],
                       'f':[0,3,0,4,0],
                 'a_r':['',2,'','','']})

Tags: 代码dataframepandassqlonmergemerged条件