熊猫减去两列不能正常工作

时间:2019-11-13 14:19:49

标签: python pandas

使用以下代码,Dollar_Different的结果 应显示0 。它适用于除以下3条之外的所有其他行。有什么想法吗?我已经在Excel中手动进行了检查,结果为0。

df['Dollar_Different'] = df['R_Revenue'] - df['S_Revenue']

Current Results - Wrong

3 个答案:

答案 0 :(得分:0)

您确定R_Revenue和S_Revenue正是这些值并且不会被截断为2个小数吗?您可以先尝试使用https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.round.html进行四舍五入,然后再减去一次,看得出的结果是否为0。

答案 1 :(得分:0)

大概您正在使用浮点类型(默认)。浮点数不能精确表示每个实数。可能两列中的数字实际上稍有不同,但是您只用两位小数显示它们。

在处理财务数据的应用程序中,完全避免了浮点类型,这正是您在此处看到的原因。还有其他数据类型,用于正确准确地表示小数。但是IIRC熊猫不支持其中任何一个。

您可以使用的一种简单的变通方法是将收入数量表示为整数:一个整数字段代表以美分表示的总量,或者两个字段,一个用于美元,另一个用于美分。 / p>

答案 2 :(得分:0)

我将源数据类型更改为整数,并且现在所有内容都匹配。