, если порядок имеет значение:
df['FROM_TO'] = df['FROM'] + df['TO']
df['COUNT'] = 1
df.groupby(['FROM_TO'])['COUNT'].sum()
дает вам все вхождения в одном go. Просто возьмите максимум, чтобы найти наибольшее вхождение.
Если порядок имеет значение, сначала отсортируйте значения перед:
df.loc [:,:] = np.sort (df.values, axis = 1) # если df состоит только из столбцов FROM и TO.