小编Nat*_*ylo的帖子

根据多个条件创建列

我是想加入Pandas的长期SAS用户。我想根据各种if条件设置列的值。我想我可以使用嵌套的np.where命令来做到这一点,但我想我会检查是否有更优雅的解决方案。例如,如果我设置了一个左边界和右边界,并且想返回一列字符串值,以了解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
Run Code Online (Sandbox Code Playgroud)

可以使用np.where来检查一种情况:

df['area'] = np.where(df['x']>df['rbound'],'right','somewhere else')
Run Code Online (Sandbox Code Playgroud)

但是不确定该怎么做,我想在一行中检查多个if-else ifs。

输出应为:

df
   lbound   rbound  x    area
0   -1      1       0    middle
1   5       7       1    left
2   0       1       2    right
Run Code Online (Sandbox Code Playgroud)

python nested dataframe pandas

5
推荐指数
1
解决办法
403
查看次数

标签 统计

dataframe ×1

nested ×1

pandas ×1

python ×1