【问题标题】:Compare columns from two different dataframes pandas比较来自两个不同数据框熊猫的列
【发布时间】:2019-12-13 07:13:36
【问题描述】:

我正在向 AD 查询机器列表。我按上次登录日期用 pandas 过滤此列表。当我处理完这些数据后,我有一列 一个数据框。

我有另一份报告,其中列出了安装了我们使用的产品的机器。我清理了这些数据,留下了我想用来与 AD 数据进行比较的设备。这只是数据框中的一列。

我也尝试过比较列表。我不确定最好的方法。

我尝试了合并,但我猜这会将 DF1 第 1 行与 DF2 第 1 行进行比较。

DF1 = comp1,comp2,comp3,comp5

DF2 = comp1,comp2,comp3

如何检查 DF1 中的每一行以确保 DF2 中的每个值都存在并返回真或假?

我正在尝试找出 DF1 中不存在于 DF2 中的机器。

【问题讨论】:

    标签: python python-3.x pandas


    【解决方案1】:

    DataFrame.isin

    这是一个检查一个值是否在另一个值中的简单检查,您可以通过多种方式执行此操作,这可能是最简单的方法之一。

    我提供了一些虚拟数据,但请查看How to make good reproducible pandas examples

    machines = ['A','B','C']
    machines_to_check = ['A','B']
    
    df = pd.DataFrame({'AD' : machines})
    
    df2 = pd.DataFrame({'AD' : machines_to_check})
    

    现在,如果我们要检查 df 中存在但 df2 中不存在的机器,我们可以使用 ~ 反转 .isin 函数。

    non_matching_machines = df.loc[~df['AD'].isin(df2['AD'])]
    print(non_matching_machines)
        AD
    2   C
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多