Для каждого из задействованных столбцов мы можем провести сравнение и преобразовать логические результаты в int (1 для True, 0 для False):
def greater_value(df, reference, column):
return (df[column] > df[reference]).astype(int)
И затем сложить результаты:
df['count'] = greater_value(df, 'a', 'b') + greater_value(df, 'a', 'c') + greater_value(df, 'a', 'd')
Или обобщите по предоставленному набору имен столбцов:
def count_greater(df, reference, *columns):
return sum(greater_value(df, reference, column) for column in columns)
df['count'] = count_greater(df, 'a', 'b', 'c', 'd')