Python 熊猫减去两列工作不正常
使用下面的代码,结果应显示0,表示美元不同。它适用于除下面3行之外的所有其他行。你知道为什么吗?我已手动签入Excel,结果为0Python 熊猫减去两列工作不正常,python,pandas,Python,Pandas,使用下面的代码,结果应显示0,表示美元不同。它适用于除下面3行之外的所有其他行。你知道为什么吗?我已手动签入Excel,结果为0 df['Dollar_Different'] = df['R_Revenue'] - df['S_Revenue'] 您确定R_收入和S_收入正是这些值,并且没有被截断为2位小数吗?您可以先尝试使用四舍五入,然后再进行减法运算,看看结果是否为0。可能您使用的是浮点类型(这是默认值)。浮点不能精确地表示每个实数。也许,这两列中的数字实际上略有不同,但显示它们时只有两个
df['Dollar_Different'] = df['R_Revenue'] - df['S_Revenue']
您确定R_收入和S_收入正是这些值,并且没有被截断为2位小数吗?您可以先尝试使用四舍五入,然后再进行减法运算,看看结果是否为0。可能您使用的是浮点类型(这是默认值)。浮点不能精确地表示每个实数。也许,这两列中的数字实际上略有不同,但显示它们时只有两个十进制数字 在处理财务数据的应用程序中,避免使用浮点类型,这正是您在这里看到的原因。还有其他一些数据类型是为了准确地表示十进制数而设计的。但IIRC熊猫不支持任何这些
您可以使用的一个简单解决方法是将收入数量表示为整数金额:单个整数字段表示以美分为单位的总数量,或者两个字段,一个是美元部分,另一个是美分部分。我将源数据类型更改为整数,现在所有数据都匹配。这些数字可能有一些被截断的小数等。加上这些差异,按照大多数计算机标准,技术上是0。也许这会给你一些背景知识,谢谢。我将研究更正小数,看看这是否会产生影响。