比较来自两个不同数据框熊猫的列

时间:2019-08-05 18:18:47

标签: python python-3.x pandas

我正在查询AD以获取计算机列表。我按上次登录日期用熊猫过滤了此列表。当我处理完这些数据后,我会在其中一列 一个数据框。

我还有另一个报告,其中列出了我们使用的产品已安装的计算机的列表。我清除了这些数据,剩下的就是要用于与AD数据进行比较的设备。这只是数据框中的一列。

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

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

DF1 = comp1,comp2,comp3,comp5

DF2 = comp1,comp2,comp3

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

我试图找出DF1中不存在的计算机。

1 个答案:

答案 0 :(得分:0)

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