如何在Pandas中根据三角函数计算一个新的列?

9

我有一个数据框,其中包含以下列(角度的正弦和余弦)

                SWD         CWD
2013-12-06  -0.394097   -0.350099
2013-12-07  -0.388295   -0.271105
2013-12-08  -0.391894   -0.202537
2013-12-09  -0.388662   -0.430063
2013-12-10  -0.396427   -0.433933

如何创建一个新的列,其中包含角度的arctan值(atan(sin/cos))?

谢谢

Hugo

1个回答

13
你可以使用numpy的arctan
In [42]:

df['ATAN'] = np.arctan(df['SWD']/df['CWD'])
df
Out[42]:
         Date       SWD       CWD      ATAN
0  2013-12-06 -0.394097 -0.350099  0.844451
1  2013-12-07 -0.388295 -0.271105  0.961284
2  2013-12-08 -0.391894 -0.202537  1.093787
3  2013-12-09 -0.388662 -0.430063  0.734874
4  2013-12-10 -0.396427 -0.433933  0.740260

4
我建议您检查一下,确保您需要的是 atan 而不是 atan2(在 numpy 中为 arctan2)。 - will
不错的观点,但是arctan2函数需要坐标值,而OP已经说明这些值是角度值,所以我认为在这里使用arctan函数更加合适。 - EdChum
1
atan2提供了一个角度,只是在不同的范围内(它们确实有sin和cos列)。无论如何,值得指出的是,如果这是他们想要的,他们可能不知道atan2。 - will

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接