我有两个数据帧,我想逐行比较它们,并将结果存储在一个新的数据帧中
我要做的是条件比较,如果df1中的值与df2中的值不同(或超过公差),我们要将df2中的值复制到新的数据帧中。如果值相同(或在公差范围内),则在新数据帧中返回null
对于每列,我将添加一个公差: 年龄容忍度:3,工资容忍度:500,奖金容忍度:100
df1 = pd.DataFrame({'Age':[22,55,35],'salary':[1500,2000,1000],'bouns':[500,222,124]})
df2 = pd.DataFrame({'Age':[23,55,65],'salary':[1400,1000,3000 ],'bouns':[100,222,500]})
In [3]: df1
Age salary bonus
0 22 1500 500
1 55 2000 222
2 35 1000 124
In [3]: df2
Age salary bonus
0 23 1400 100
1 55 1000 222
2 65 3000 500
输出应如下所示:
In [4]: df3
Age salary bonus
0 100
1 1000
2 65 3000 500
我尝试的是使用isclose函数比较两个数据帧的值和特定的容差。它工作正常。但它返回布尔值true或false
df3 = np.isclose(df1["Age"], df2["Age"], atol=3)
我想使用if-else语句,因此如果条件为True,则返回null,如果为False,则返回df2中的值
您可以减去这两个数据帧并获取绝对值,然后使用带有
[3,500,100]
的列表来查看哪些值高于公差。然后DataFrame.where
将条件为False
的值替换为空字符串:相关问题 更多 >
编程相关推荐