gpt4 book ai didi

python - 通过属性(点)与括号访问 pandas 列值时出现奇怪的错误

转载 作者:行者123 更新时间:2023-12-01 06:49:56 24 4
gpt4 key购买 nike

在访问 pandas 数据帧中的值时,我在 Python 中遇到了一个非常奇怪的错误。

对于给定的行和特定的列,下面的两行代码返回不同的值,而我期望它们是相同的:

  1. >> df[df.obsId == 107099]['length'].values[0]
    101.720001220703
  2. >> df[df.obsId == 107099].length.values[0]
    101.64261358425581

我实在不明白为什么返回的长度值不一样。括号访问和属性访问不应该是等效的吗?我认为这可能是 float 不精确的原因,但实际上差异很大。

另外,当我显示数据帧时,相应的值为 101.720001,这似乎表明显示使用第一种方法而不是第二种方法访问数据:

screenshot

有什么线索可以解释造成如此重要差异的原因、如何避免它以及值得信任这两种方法中的哪一个吗?

非常感谢!

最佳答案

多亏了评论的提示,我终于明白了问题所在。

我的数据类型实际上是地理数据帧,并且地理数据帧似乎具有 .length 属性。因此,属性表示法引用了此 .length 属性,而不是引用同名的列,后者恰好具有不同的值!

关于python - 通过属性(点)与括号访问 pandas 列值时出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59068761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com