我有一个python数据框,其中包含测量值,包括位置。
我需要计算方向的角度,这是由ATAN(Y / X)完成的。
但是,我需要添加X和Y的符号条件来说明角度的方向(我们位于哪个象限)。
因此,我想知道如何遍历数据帧的每一行,对于“ X”和“ Y”列,我需要: 如果X为正,而Y为正,则。 如果X为正,Y为负,则。 如果X为负且Y为正,则。 如果X为负,而Y为负。.
我正在努力将这种逻辑应用于数据框。
有人知道如何解决这个问题吗?
答案 0 :(得分:1)
使用np.arctan2
更容易。这将考虑到您的两侧的符号,使您在[-pi, pi]
中有一个角度。
要回答您的实际问题,您可以使用嵌套的if语句,例如:
if x >= 0:
if y >= 0:
# code
else: # y < 0
# code
else: # x < 0
if y >= 0:
# code
else: # y < 0
# code
答案 1 :(得分:0)
您可能需要考虑使用arctan2
中的numpy
函数,而不是手动包含这种逻辑;您可以找到文档here。它会自动处理传递给它的坐标的符号。
在这种情况下,假设您在DataFrame
中的列分别命名为X
和Y
,而DataFrame
本身被命名为df
,则可以np.arctan2(df['Y'], df['X'])
。