您需要使用上下限进行链式比较
def flag_df(df): if (df['trigger1'] <= df['score'] < df['trigger2']) and (df['height'] < 8): return 'Red' elif (df['trigger2'] <= df['score'] < df['trigger3']) and (df['height'] < 8): return 'Yellow' elif (df['trigger3'] <= df['score']) and (df['height'] < 8): return 'Orange' elif (df['height'] > 8): return np.nandf2['Flag'] = df2.apply(flag_df, axis = 1) student score height trigger1 trigger2 trigger3 Flag0 A 100 7 84 99 114 Yellow1 B 96 4 95 110 125 Red2 C 80 9 15 30 45 NaN3 D 105 5 78 93 108 Yellow4 E 156 3 16 31 46 Orange
注意:您可以使用非常嵌套的np.where来执行此操作,但是我更喜欢将函数应用于多个if-else



