在pandas中添加if



我有以下功能:

d["direction"] = d.apply(lambda x: 180 + 180/(m.pi*(m.atan2(x.water_u,x.water_v))), axis=1, result_type="expand")

该函数添加了一个名为方向的列,基于2列water_u和water_v的计算-正如你所看到的,如果角度为零,将会有一个零除法,因此一个错误,现在我可以创建一个函数来添加一个if,这样它是零,除法的值仍然为零,但是有没有一个python的方法来在我的lambda函数中做到这一点?

无论如何,如果有人知道一个聪明简洁的方法来实现这一点,我会很感激。

您不必使用lambda函数。

分别计算你的角度,并使用np.where计算方向:

import numpy as np
angle = (np.pi*(np.arctan2(df.water_u, df.water_v)))
df['direction'] = np.where(angle != 0, 180 + 180 / angle, 0)

的例子:

# Before
>>> df
water_u  water_v
0        0        0
1       10       20
# After
>>> df
water_u  water_v   direction
0        0        0    0.000000
1       10       20  303.576135

相关内容

  • 没有找到相关文章

最新更新