如何比较 Python 中两个数据框中的两列值?
How to compare two columns values in two dataframes in Python?
我有两个数据框,我在第二个数据框中创建了一个“检查”列来检查总索赔列中的值是否相等。这是我的两个数据框:
数据帧 1
数据帧 2
我用来创建比较两个数据框之间的总索赔的“检查”列的代码是:
reported_claims['Check'] = np.where(reported_claims['Total Claims'].reset_index(drop=True) == df['Total Claims'].reset_index(drop=True) , 'TRUE', 'FALSE')
我注意到两个数据框中的第 7 个值都是 31.32,但检查列显示 False。我只是想知道为什么它说 False 以及我将如何解决这个问题?非常感谢您的宝贵时间!
问题是通过比较两个浮点数产生的。大多数编程语言(包括 python)的一般规则是您永远无法检查两个浮点数是否 完全相等 。您必须改为检查这两个值是否接近。
您可以使用 np.isclose(). Check 来参考如何使用它。
使用合并命令连接两个数据框并添加校验列来比较两列
df = pd.merge(left=Dataframe1, right=Dataframe2, left_on='month', right_on='month')
我有两个数据框,我在第二个数据框中创建了一个“检查”列来检查总索赔列中的值是否相等。这是我的两个数据框:
数据帧 1
数据帧 2
我用来创建比较两个数据框之间的总索赔的“检查”列的代码是:
reported_claims['Check'] = np.where(reported_claims['Total Claims'].reset_index(drop=True) == df['Total Claims'].reset_index(drop=True) , 'TRUE', 'FALSE')
我注意到两个数据框中的第 7 个值都是 31.32,但检查列显示 False。我只是想知道为什么它说 False 以及我将如何解决这个问题?非常感谢您的宝贵时间!
问题是通过比较两个浮点数产生的。大多数编程语言(包括 python)的一般规则是您永远无法检查两个浮点数是否 完全相等 。您必须改为检查这两个值是否接近。
您可以使用 np.isclose(). Check
使用合并命令连接两个数据框并添加校验列来比较两列
df = pd.merge(left=Dataframe1, right=Dataframe2, left_on='month', right_on='month')