数据框中loc访问的值是前一个值



我使用loc来获得一定的值,但返回的数字是赋值前的值。但是,如果在列名周围加上方括号,返回值将是当前值。我调试了很久,有没有人能帮我一下

jupyter notebook输出

7530是之前的值,现在应该是10846。

我也试过iloc,没有问题。我知道loc的列名与方括号将返回一个数据框,而一个没有方括号返回一个系列,但我不认为它会改变值。更重要的是,错误并不总是出现,只是在for循环中出现几次。它是在一个大的代码中随机发生的,所以很难用简单的代码重现错误。我已经试过很多次了,效果很好。我只是想知道有什么可能的原因会导致dataframe.loc[row_name,[col_name]]dataframe.loc[row_name,col_name]的值出现如图所示的不同

在我将pandas从1.4.2更新到1.5.2之后,这个bug就消失了。我用两个版本的熊猫运行相同的代码,得到了不同的结果。因此,这只是旧版本的熊猫的一个错误。

大熊猫1.4.2和1.5.2两个结局

最新更新