Skip to main content
 首页 » 编程设计

python之在具有缺失值的列上计算 sin

2025年05月04日17Terrylee

我有一个包含 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)) 

喂, 戴夫