colA colB colC
A B C
A D C
B B E
A D C
C B C
我想以这样的优先级过滤它们:
如果colC == E然后返回E,那么检查colB == D返回D否则返回colA
输出是
colA colB colC final
A B C A
A D C D
B B E E
A D C D
C B C C
解决方法:
您可以使用np.select
,它允许您根据条件列表在多个值中进行选择:
m1 = df.colC =='E'
m2 = df.colB =='D'
df.loc[:,'final'] = np.select([m1,m2], ['E', 'D'], default=df.colA)
colA colB colC final
0 A B C A
1 A D C D
2 B B E E
3 A D C D
4 C B C C