我是一个长期的SAS用户,想进入熊猫。我想根据各种if条件设置列的值。我想我可以用嵌套的np.哪里命令,但我想看看是否有更优雅的解决方案。例如,如果我设置了一个左边界和右边界,并且想要返回一列字符串值,如果x是这些边界的左、中或右,那么最好的方法是什么?基本上,如果x<;lbound返回“left”,否则如果lbound<;x<;rbound返回“middle”,否则如果x>;rbound返回“right”。在
df
lbound rbound x
0 -1 1 0
1 5 7 1
2 0 1 2
可以使用np.哪里公司名称:
^{pr2}$但不知道该怎么做,我想在一行中检查多个if-else。在
输出应为:
df
lbound rbound x area
0 -1 1 0 middle
1 5 7 1 left
2 0 1 2 right
您可以使用numpy select代替np.哪里在
选项1
可以使用嵌套的
np.where
语句。例如:选项2
{cd2>可以指定访问范围。请注意,在使用前必须添加新列。我们借此机会设置默认值,稍后可能会被覆盖。在
^{pr2}$说明
这些都是有效的替代方案,性能相当。两种情况下的计算都是矢量化的。我倾向于选择2,因为它看起来更具可读性。如果有大量的嵌套条件,
np.where
可能更方便。在相关问题 更多 >
编程相关推荐