Python DataFrame将条件应用于行和列

时间:2019-02-05 02:18:56

标签: python pandas

我有一个python数据框,其中包含测量值,包括位置。

我需要计算方向的角度,这是由ATAN(Y / X)完成的。

但是,我需要添加X和Y的符号条件来说明角度的方向(我们位于哪个象限)。

因此,我想知道如何遍历数据帧的每一行,对于“ X”和“ Y”列,我需要:  如果X为正,而Y为正,则。  如果X为正,Y为负,则。  如果X为负且Y为正,则。  如果X为负,而Y为负。.

我正在努力将这种逻辑应用于数据框。

有人知道如何解决这个问题吗?

2 个答案:

答案 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中的列分别命名为XY,而DataFrame本身被命名为df,则可以np.arctan2(df['Y'], df['X'])