Если затем еще в numpy выберите

#python #pandas #numpy

Вопрос:

В моем коде с помощью numpy.выберите ниже, я хочу поместить раздел «ЕЩЕ в состоянии», чтобы он позаботился обо всех оставшихся сценариях. Как я могу это сделать?

(Лямбда-это хорошо, чтобы идти)

 df = pd.DataFrame({'id': [1,2,3,4,5,6,7,8,9],
                   'In': [111, 100, 31, 1100, 12, 33, 21, 32, 33],
                   'Out': [24, 52, 34, 95, 98, 54, 32, 20, 16]})

conditions = [
    df['In'] >100,
    df['Out'] > 50,
    (df['In']<df['Out']) amp; (df['Out']>20)
]

choices = [1, 2, 3]

df['check'] = np.select(conditions, choices, default=np.nan)
print(df)


# LAMBDA is good --------------------------------------------------------
df['lamda check'] = df[['In','Out']].apply(lambda x:
                       1 if x['In']>100 else
                       2 if x['Out']>50 else
                       3 if x['In']<x['Out'] and x['Out']>20 else
                       999, axis=1
                      )
print(df)
 

Ответ №1:

Если вы хотите else 999 , то установите это default в качестве np.select :

default : скалярный
Элемент, вставленный в вывод, когда выполняются все условия False .

 df['check'] = np.select(conditions, choices, default=999)