Pandas 如何在数据帧合并期间识别内部联接中没有的内容

Pandas 如何在数据帧合并期间识别内部联接中没有的内容,pandas,dataframe,Pandas,Dataframe,我有一个框架看起来像这样(df): 2000q1 2000q2 2000q3 州名 纽约纽约南南南 加州洛杉矶207066.666667 214466.666667 220966.666667 伊利诺伊州芝加哥138400.000000143633.333 147866.666667 (请注意,此处的State、RegionName是一个多索引) 还有一个框架看起来像这样(ut): 州名 0阿拉巴马州奥本 1阿拉巴马州佛罗伦萨 2阿拉巴马州杰克逊维尔 3阿拉巴马州利文斯顿 4阿拉巴马州蒙特瓦洛

我有一个框架看起来像这样(df):

2000q1 2000q2 2000q3 州名 纽约纽约南南南 加州洛杉矶207066.666667 214466.666667 220966.666667 伊利诺伊州芝加哥138400.000000143633.333 147866.666667 (请注意,此处的State、RegionName是一个多索引)

还有一个框架看起来像这样(ut):

州名 0阿拉巴马州奥本 1阿拉巴马州佛罗伦萨 2阿拉巴马州杰克逊维尔 3阿拉巴马州利文斯顿 4阿拉巴马州蒙特瓦洛 因此,为了获得State、RegionName在两个数据帧中的所有行,我执行以下操作:

dfut = pd.merge(df, ut, how='inner', left_index=True, right_on=['State', 'RegionName']) dfut=pd.merge(df,ut,how='inner',left_index=True,right_on=['State','RegionName'])
这很有效。我现在想要一个列表,其中来自df帧的行不在ut帧中——比如“非内部连接”。我很确定我需要做一个左连接,它将给出整个df,但我不确定如何从中减去相交的行。希望它是清楚的。谢谢

在您的
合并
查询中包括参数
indicator=True
(“\u merge!=”两者“)


这是最好的方法吗?似乎是一个解决办法虽然我可能会想出一个更漂亮的解决方案近3年后,这不是一个解决办法。 State RegionName 0 Alabama Auburn 1 Alabama Florence 2 Alabama Jacksonville 3 Alabama Livingston 4 Alabama Montevallo dfut = pd.merge(df, ut, how='inner', left_index=True, right_on=['State', 'RegionName'])
dfut = pd.merge(df, ut, how='outer',
                left_index=True, right_on=['State', 'RegionName'],
                indicator=True)

dfut.query('_merge != "both"')