У меня есть два столбца в моем наборе данных, как показано ниже.Я хочу выбрать только одну комбинацию из всех «похожих» комбинаций.В этом случае (апельсин, фрукты) и (фрукты, апельсин) эквивалентны, поэтому мне нужен только один из них.Кроме того, теперь, когда фрукты сопоставлены с апельсином, мне больше ничего не нужно для фруктов.Таким образом, в основном (фрукт, красный) станет (оранжевый, красный)
C1 C2
orange fruit
orange color
orange apple
apple red
apple fruit
fruit red
fruit apple
fruit mango
fruit orange
Это код, который я пробовал в Python
# Convert data frame to set of tuples
l = []
for i,x in df.iterrows():
l.append((x['C1'],x['C2']))
s_comb = set(l)
# Set of unique values from C1
s = set(list(df['C1']))
#Initialize x with first element of s
x = list(df['C1'])[0]
x=[x]
# Code for creating combinations
for i in s:
if i not in x:
for j in x:
if (i,j) not in s_comb:
x.append(i)
Ожидаемый результат:
C1 C2
orange fruit
orange color
orange apple
orange red
orange mango
В настоящее время код занимает очень много времени, и я не уверен в точности вывода кода.