Опция 1
Вы можете использовать numpy.sort
для сортировки значений фрейма данных. Однако, поскольку это сортирует на месте, возможно, лучше создать копию фрейма данных.
dfTeams = pd.DataFrame(data=df.values.copy(), columns=['team1','team2'])
dfTeams.values.sort()
(я изменил имена столбцов, потому что с сортировкой вы меняете их значение)
После этого вы можете использовать groupby
.
results.groupby(['team1', 'team2']).size()
Вариант 2
Поскольку более общий заголовок вашего вопроса будет выглядеть примерно так: как я могу посчитать комбинацию значений в нескольких столбцах на фрейме данных независимо от ихЗаказать , вы можете использовать set
.
Объект набора - это неупорядоченная коллекция различных хеш-объектов.
Точнее, создайте Series
замороженных наборов, а затем подсчитывайте значения.
pd.Series(map(lambda home, away: frozenset({home, away}),
df['home'],
df['away'])).value_counts()
Примечание. Я использую фрейм данных в ответе @Harv Ipan.