Я хочу попросить вас помочь Python.
У меня есть данные, как здесь на картинке:

Я хочу создать иерархию отношений формы цвета, когда знаю, что:
цвет определяет первый уровень иерархии
сформировать второй уровень = слой определения следующим образом:
если у меня есть цвет "синий" + "круговой" = я знаю, что синий - это иерархия 1, а круговой - это также 1-й уровень иерархии в фигуре.
когда у меня "синий" + "треугольный" = я знаю, что синий равен 1, а треугольный 2.
Когда у меня "красный" + "круговой" = красный - это иерархия 2, круговой 1 => красный выше синего независимо от формы.
Чего я хочу достичь: я хочу установить базовую комбинацию, с которой я буду сравнивать другие комбинации иерархии.
Это означает, что я буду устанавливать «синий круг» в качестве основы.
А потом сравню базу с "синим треугольным", потом с "красным круглым" и т. Д.
В сравнении я хочу добавить определенную информацию в новый столбец об иерархии, в которой находится комбинация:
blue circular = 1.1
blue triangular = 1.2
...
Мое видение состоит в том, чтобы собрать все уникальные комбинации из панд данных, как я здесь:
shape= df['shape']
color = df['color']
combinations = set(list(zip(color,shape)))
Затем я хочу пройти по этим комбинациям, чтобы создать новый фрейм данных, где я проведу некоторое сравнение между комбинациями с более низкой иерархией и комбинациями с более высокой иерархией.
for a,b in enumerate(set(list(zip(color,shape)))):
df_new = df[(df['color'] == a) & (df['shape'] == b)]
Но сейчас я действительно застрял и не знаю, как продолжить.
Я думал о создании словаря, в котором я буду хранить иерархии вроде:
colors = {'blue': 1, 'red': 2, 'pink': 3}
shapes = {'circular': 1, 'triangular': 2}
И тогда я бы как-то это сочетал. Но я действительно не знаю вариантов.
Может быть также, что не должно быть никакой комбинации, над которой я хочу выполнить какое-либо действие. например, розовая треугольная = ее не нужно отмечать, поскольку это совершенно другая категория, и я хочу оставить ее вне иерархических структур.