Создайте столбец с объединенным g_var
, в котором хранится кортеж, включающий два значения.
Чтобы их можно было сравнивать одинаково, сохраняйте кортеж отсортированным, поэтому "B", "A"
также станет ("A", "B")
.
Для достижения этого результата можно использовать метод apply()
, используя пользовательскую функцию.
def make_tuple_var(row):
var1 = row['g_var_1']
var2 = row['g_var_2']
if var1 > var2:
# Swap them.
var1, var2 = var2, var1
return (var1, var2)
Затем вы можете использовать его в:
df['g_var'] = df.apply(make_tuple_var, axis=1)
И, наконец, вы можете groupby('g_var')
, который сгруппирует все эквивалентные пары вместе.