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

时间:2019-06-12 10:27:57

标签: python pandas dataframe

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

df1:: page, origin, count

df2:: page, claim, verdict, origin

位置:

每个特定页面可以有多个来源,并且不同页面可能重复相同的来源:

  

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

     

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

     

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

例如:

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

df2:
  page           claim           verdict     origin     count
www.h1.com | the world is flat |  false  |  www.h1.com    2
www.h1.com | the world is flat |  false  |  www.h2.com    3

将给出:

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

1 个答案:

答案 0 :(得分:0)

感谢@yatu的回答,该答案已被使用

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