计算pandas数据帧中多个角度的角度的正切值

时间:2017-09-13 19:50:04

标签: python pandas numpy dataframe

我有以下数据框:

    DATE        TIME            A       B
0   2016-01-01  00:00:00.000    443.30  469.80
1   2016-01-01  00:01:00.000    145.80  470.00
2   2016-01-01  00:03:00.000    452.20  471.00
3   2016-01-01  00:04:00.000    174.20  461.30
4   2016-01-01  00:05:00.000    345.30  471.90

我基本上只想计算数据帧所有行的角度正切(A / B)。

我的代码:

import numpy as np
import math as m

df['I']=np.(m.degrees(m.atan(df['A']/df['B'])))

产生错误:

File "<ipython-input-70-0abce3902356>", line 3
df['I']=np.(m.degrees(m.atan(df['A']/df['B'])))
           ^
SyntaxError: invalid syntax

取出()会产生另一个错误:

df['I']=np.m.degrees(m.atan(df['A']/df['B']))

AttributeError                            Traceback (most recent call last)
<ipython-input-71-7cfc6387d664> in <module>()
       1 
       2 
 ----> 3 df['I']=np.m.degrees(m.atan(df['A']/df['B']))

AttributeError: module 'numpy' has no attribute 'm'

我理解错误告诉我的是什么,我只是不知道如何进行计算。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

只需使用numpy函数np.degreesnp.arctanmath模块函数不适用于向量。

df['I'] = np.degrees(np.arctan(df['A']/df['B']))
df
         DATE          TIME      A      B          I
0  2016-01-01  00:00:00.000  443.3  469.8  43.337628
1  2016-01-01  00:01:00.000  145.8  470.0  17.234557
2  2016-01-01  00:03:00.000  452.2  471.0  43.833393
3  2016-01-01  00:04:00.000  174.2  461.3  20.687963
4  2016-01-01  00:05:00.000  345.3  471.9  36.193786

顺便说一下,np - numpym的别名 - math(内置)的别名。不知道你为什么要按照自己的方式使用它们。