df = pd.DataFrame({'High': [1.3, 1.7, 1.1], 'Low': [1.3, 1.2, 1.1], 'High1':
    [1.1, 1.1, 1.1], 'High2': [1.2, 1.2, 1.2], 'High3': [1.3, 1.3, 1.3],
    'Low1': [1.3, 1.3, 1.3], 'Low2': [1.2, 1.2, 1.2], 'Low3': [1.1, 1.1, 1.1]})
highs = ['High{:d}'.format(x) for x in range(0, 4)]
for h in highs[::-1]:
    mask = df['High'] <= df[h]
df.loc[mask, 'FirstHigh'] = h
Fastest way to find which of two lists of columns of each row is true in a pandas dataframe