Ответ 1
Вы просто делаете противоположное сравнение. if Col2 <= 1
. Это вернет булевскую серию со значениями False
для значений больше 1 и True
для другого. Если вы преобразуете его в dtype int64
, True
станет 1 и False
станет 0
,
df['Col3'] = (df['Col2'] <= 1).astype(int)
Если вы хотите получить более общее решение, в котором вы можете назначить любое число Col3
в зависимости от значения Col2
, вы должны сделать что-то вроде:
df['Col3'] = df['Col2'].map(lambda x: 42 if x > 1 else 55)
Или:
df['Col3'] = 0
condition = df['Col2'] > 1
df.loc[condition, 'Col3'] = 42
df.loc[~condition, 'Col3'] = 55