我有一个包含 2 个地理位置列(long_1、lat_1、long_2、lat_2)的 pandas DataFrame,我想为它们之间的距离添加一个列。网上可以找到近似公式,忽略细节,涉及sin和cos,这就是我的问题。
我想计算np.sin( df["long_1"] )
。如果所有值都不为空,它会起作用,但一旦我有缺失值,它就会抛出错误,而不是返回 NaN
。我收到以下错误:
In [97]: np.sin( df["long_1"] )
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-97-d95dd98ecd44> in <module>()
----> 1 np.sin( df["long_1"] )
AttributeError: sin
知道可能是什么问题吗?或者,如果我在这里错了 - 计算具有某些缺失值的 Series 的 sin/cos 的最佳方法是什么(预期行为应该是在输入值缺失时返回 NaN
)。
谢谢!
最佳答案
看起来你的 dtype 是对象,这意味着 numpy 试图在数组的每个元素上调用属性 sin
。将其输入为 float 应该可以。
例如
df["long_1"] = df["long_1"].astype(np.float64)
或
np.sin(df["long_1"].astype(np.float64))
喂, 戴夫
关于python - 在具有缺失值的列上计算 sin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19810313/