【问题标题】:Find extra values after comparing two columns of dataframe python比较两列数据框python后找到额外的值
【发布时间】:2017-01-17 14:20:43
【问题描述】:

我有两个由列组成的数据框

df 有列:id1

id1 
 1  
 2  
 3
 4
 5 
 6

df2 有列:id2

id2
 2 
 1
 5
 4

正如您在 df1 中看到的,有些值不在 df2['id2'] 3,6

有没有办法通过对两个数据框列进行差异来找到它 还是其他方式?

我试过了

df2.isin(df1)

但只获取布尔值。

但我想要实际的行

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    有很多方法可以解决这个问题,但 Pandas 索引对象有一个 difference 方法,可以从调用索引中查找第二个索引中缺少的所有索引。

    idx1 = pd.Index(df.id1)
    idx2 = pd.Index(df.id2)
    
    idx1.difference(idx2).values
    
    array([3, 6])
    

    使用isin 你会得到同样的结果:

    df[~df.id1.isin(df2.id2)]
    

    【讨论】:

    • 后一个例子是我需要的,而且非常简单。谢谢
    【解决方案2】:

    你也可以使用集合操作

    list(set(df.id1) - set(df2.id2))
    
    [3, 6]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 2022-01-10
      • 1970-01-01
      相关资源
      最近更新 更多