我是一名长期使用SAS的用户,现在想学习Pandas。我想根据各种条件设置列的值。我认为可以使用嵌套的np.where命令来实现,但我想确认是否有更优雅的解决方案。例如,如果我设置左边界和右边界,并希望返回一个字符串值的列,以表示x是否在这些边界的左侧、中间或右侧,那么最好的方法是什么?基本上,如果 x < 左边界,则返回“left”,如果左边界 < x < 右边界,则返回“middle”,否则如果 x > 右边界,则返回“right”。
df
lbound rbound x
0 -1 1 0
1 5 7 1
2 0 1 2
可以使用np.where检查一个条件:
df['area'] = np.where(df['x']>df['rbound'],'right','somewhere else')
但不确定该怎么做,如果我想在单行中检查多个 if-else if 语句。
输出应该是:
df
lbound rbound x area
0 -1 1 0 middle
1 5 7 1 left
2 0 1 2 right