Это также можно решить с помощью индексации и заполнения.
df.loc[(df['A'] > df['B'])
&(df['B'] > df['C']), 'New_Col'] = 1
df.loc[(df['A'] < df['B'])
&(df['B'] < df['C']), 'New_Col'] = 2
df['New_Col'] = df['New_Col'].fillna(3)
Первый фрагмент кода читается так: найдите, где A> B и B> C, если оба эти условия выполняются, установите столбец 'New_Col' равным 1. Второй фрагмент можно интерпретировать в том же самом путь. Если и первый, и второй чанк не возвращают 1 или 2, они будут отображаться как ноль. Используйте функцию fillna (), чтобы заполнить эти нули значением 3.
Это создаст следующий фрейм данных: