Python 对于两个数据帧,如何检索两个标签值的组合在一个数据帧中而不是在另一个数据帧中的行

Python 对于两个数据帧,如何检索两个标签值的组合在一个数据帧中而不是在另一个数据帧中的行,python,pandas,dataframe,Python,Pandas,Dataframe,在我的python应用程序中,我有两个带有以下标签的数据帧: df1:: page, origin, count df2:: page, claim, verdict, origin 其中: 每个特定页面可以有多个原点,原点可能会在不同页面重复: df1包含所有页面及其关联来源的大型列表(因此同一页面可以重复) df2包含用户访问的页面原点组合的详细信息 我想做的是,使用.loc我想,从df1中获取特定用户未访问的所有行。我想使用page origin作为某种主键,从df1中删除df2中的

在我的python应用程序中,我有两个带有以下标签的数据帧:

df1:: page, origin, count

df2:: page, claim, verdict, origin
其中:

每个特定页面可以有多个原点,原点可能会在不同页面重复:

df1包含所有页面及其关联来源的大型列表(因此同一页面可以重复)

df2包含用户访问的页面原点组合的详细信息


我想做的是,使用
.loc
我想,从
df1
中获取特定用户未访问的所有行。我想使用
page origin
作为某种主键,从
df1
中删除
df2
中的所有对应行

例如:

df1:
  page       origin     count
www.h1.com  www.h1.com    2
www.h1.com  www.h2.com    1
www.h2.com  www.h1.com    0
www.h3.com  www.h4.com    4

将提供:

   page       origin    count
www.h2.com  www.h1.com    0
www.h3.com  www.h4.com    4

感谢@yatu给出的答案,即使用

df1[~(df1.page.isin(df2.page) & df1.origin.isin(df2.origin))]

感谢@yatu给出的答案,即使用

df1[~(df1.page.isin(df2.page) & df1.origin.isin(df2.origin))]

您需要
.isin
所以类似于:df1=df1.loc[~(df1['page']+df1['origin']).isin(df2)]?您想在页面和源代码上同时检查df2是否工作?
df1['page']+df1['origin']
,不。这只是添加字符串。对于
.isin(df2.page)
,在哪些列中?所有这些?小错误,使用
df1[~(df1.page.isin(df2.page)&df1.origin.isin(df2.origin))
您需要
.isin
这样的东西:df1=df1.loc[~(df1['page']+df1['origin']).isin(df2)]?您想在页面和源代码上同时检查df2是否工作?
df1['page']+df1['origin']
,不。这只是添加字符串。对于
.isin(df2.page)
,在哪些列中?所有这些?小错误,使用
df1[~(df1.page.isin(df2.page)&df1.origin.isin(df2.origin))]