У меня есть кадры данных, в которых я пытаюсь найти все возможные комбинации самого себя и своей части. Следующие ниже фреймы данных - это сильно уменьшенная версия того, что я использую. Первый фрейм данных (fruit1) является частью второго фрейма данных (fruit2).
FruitSubDF FruitFullDF
apple apple
cherry cherry
banana banana
peach
plum
Выполнив следующий код
df1 = pd.DataFrame(list(product(fruitDF.iloc[0:3,0], fruitDF.iloc[0:5,0])), columns=['fruit1', 'fruit2'])
, вы получите
Fruit1 Fruit2
0 apple banana
1 apple apple
2 apple cherry
3 apple peach
4 apple plum
5 cherry banana
6 cherry apple
7 cherry cherry
.
.
18 banana banana
19 banana peach
20 banana plum
Моя проблема в том, что я хочу удалить элементы с одинаковыми двумя фруктами, независимо от того, какой фрукт находится в каком столбце, как показано ниже. Поэтому я рассматриваю (apple, cherry) и (cherry, apple) как одно и то же, но я не уверен в эффективном способе вместо iterRows отсеять нежелательные данные, поскольку большинство pandas функций, которые я нахожу, удаляются в зависимости от порядка.
Fruit1 Fruit2
0 apple banana
1 apple cherry
2 apple apple
3 apple peach
4 apple plum
5 cherry banana
6 cherry cherry
.
.
15 banana plum