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

时间:2019-04-27 14:15:52

标签: python pandas numpy

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

           A          B         Compare
1002      3.1         31        Not Equal
1003       5          5         
1004       1          3         Not Equal

我希望像第一个(1002)这样的行显示为相等,因为它们包含相同的数字。 A和B列都是float64数据类型。

我尝试了以下方法:

df['column_a'].replace('.','')

而且我还试图找到一种将数字乘以10的方法,条件是该值不是整数(3.1、2.2、1.4等)。

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

这是我尝试完成的操作,但出现错误(TypeError:无效的类型比较):

df['column_b'] = np.where(df['column_b'] > 5, /10,'')

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

1 个答案:

答案 0 :(得分:-1)

这值得一试:

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

您朝着正确的方向前进,只需添加astype并使用.eq() ..