我有两个数据帧,A和B,我想把它们放在A中,而不是B中,就像左上角下面的那个一样。
python - 如何在 Pandas 中进行左外部联接排除-LMLPHP
数据帧A有列['a','b' + others],B有列['a','b' + others]。没有nan值。我尝试了以下方法:
一。

dfm = dfA.merge(dfB, on=['a','b'])
dfe = dfA[(~dfA['a'].isin(dfm['a']) | (~dfA['b'].isin(dfm['b'])

2.
dfm = dfA.merge(dfB, on=['a','b'])
dfe = dfA[(~dfA['a'].isin(dfm['a']) & (~dfA['b'].isin(dfm['b'])

三。
dfe = dfA[(~dfA['a'].isin(dfB['a']) | (~dfA['b'].isin(dfB['b'])

四。
dfe = dfA[(~dfA['a'].isin(dfB['a']) & (~dfA['b'].isin(dfB['b'])

但是,当我得到len(dfm)len(dfe)时,它们的总和并不是dfA(它是由几个数字关闭的)。我试过在虚拟案例中这样做,1可以工作,所以我的数据集可能有一些我无法复制的特性。
正确的方法是什么?

最佳答案

退房this link

df=pd.merge(dfA, dfB, on=['a','b'], how="outer", indicator=True)
df=df[df['_merge'] =='left_only']

一行:
df = pd.merge(dfA, dfB, on=['a','b'], how="outer", indicator=True
              ).query('_merge=="left_only"')

关于python - 如何在 Pandas 中进行左外部联接排除,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50543326/

10-09 02:56