可能这个答案并不是大家真正遇到的,但是就有这么个大大大大坑!
解决方法
修改dtype
,常见为把int64
改为float
问题解析
使用.dtype
检查运算的那一列的类型,如果这个单元格类型是int64
,当它加/减一绝对值小于1的浮点数(比如0.25),是不会影响最后值的,它依旧是原来的值!
案例解析
比如生成一个series:
import pandas as pd
series = pd.Series(0, index=['a', 'b', 'c'])
如果使用如下的计算,就不会改变单元格的值:
series['a'] += 0.2
如果想要得到正确的运算结果,只需要创建时的代码改为:
series = pd.Series(0.0, index=['a', 'b', 'c'])
或是:
series.astype('float')