在访问数据帧中的值时,Python中出现了一个非常奇怪的错误
对于给定的行和特定的列,下面的两个代码行返回不同的值,而我希望它们是相同的:
>> df[df.obsId == 107099]['length'].values[0]
101.720001220703
>> df[df.obsId == 107099].length.values[0]
101.64261358425581
我真的不明白为什么返回的长度值不同。括号访问和属性访问不应该是等价的吗?我认为这可能是一个浮动不精确的原因,但实际上差别很大
另外,当我显示dataframe时,相应的值是101.720001,这似乎表明显示器使用第一种方法而不是第二种方法访问数据,这可能是有用的:
有什么线索可以说明造成如此重要差异的原因,如何避免,以及这两种方法中哪一种值得信任
非常感谢
多亏了这些评论的暗示,我终于明白了这个问题
我的数据类型实际上是一个geodataframe,geodataframes似乎有一个
.length
属性。因此,属性表示法引用了这个.length
属性,而不是引用了同名的列,这些列恰好有不同的值相关问题 更多 >
编程相关推荐