Python 从浮点中删除一个小数,然后与另一个值进行比较

Python 从浮点中删除一个小数,然后与另一个值进行比较,python,pandas,numpy,Python,Pandas,Numpy,我有一个数据框,我正在熊猫中使用。我有两列要确定它们是否不相等。数据示例如下所示: A B Compare 1002 3.1 31 Not Equal 1003 5 5 1004 1 3 Not Equal 我希望像第一行(1002)这样的行显示为相等,因为它们包含相同的数字。列A和B都是浮点64数据类型

我有一个数据框,我正在熊猫中使用。我有两列要确定它们是否不相等。数据示例如下所示:

           A          B         Compare
1002      3.1         31        Not Equal
1003       5          5         
1004       1          3         Not Equal
我希望像第一行(1002)这样的行显示为相等,因为它们包含相同的数字。列A和B都是浮点64数据类型

我尝试了以下方法:

df['column_a'].replace('.','')
我还试图找到一种方法,在值不是整数(3.1、2.2、1.4等)的情况下,将一个数字乘以10

我相信我也可以通过将B列中大于5的所有值除以10来实现相同的预期最终结果。我只关心0到5的值。我在上面看到的唯一值是5除以10

这是我试图完成的,但我得到一个错误(TypeError:invalid type comparison):

对于第1002行,使A列和B列中的值相等的最佳方法是什么?

这值得一试:

df['Compare']=df['A'].str.replace(“.”,”).astype(int.eq(df['B'])


您走的方向是正确的,只需添加
aType
并使用
.eq()

如果您尝试先将浮点数转换为
字符串
,然后删除小数点,最后将其转换回
整数
?例如,
int(str(num).replace(“.”,”)
其中
num
是您的浮点数我认为您尝试删除句点的方法是正确的。您可能需要在两列上使用
.apply()
方法,将它们都转换为字符串,并从左侧删除小数点。然后您就可以比较它们了。@Stephen如果您的列真的是float64,那么“31”将表示为31.0,5表示为“5.0”也是如此。请澄清,在这种情况下,你打算怎么做?3.1是否会被视为等于31.0?当我尝试此操作时,它最终会为每个条目生成两位数的列A。A列现在是
[31 50 10]
df['column_b'] = np.where(df['column_b'] > 5, /10,'')