我有以下数据框:
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'
我理解错误告诉我的是什么,我只是不知道如何进行计算。任何帮助将不胜感激!
答案 0 :(得分:1)
只需使用numpy函数np.degrees
和np.arctan
。 math
模块函数不适用于向量。
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
- numpy
和m
的别名 - math
(内置)的别名。不知道你为什么要按照自己的方式使用它们。