У меня есть датафрейм, который перечисляет объекты и их различные качества в столбцах. Один из этих столбцов - цвета объектов. Моя цель состоит в том, чтобы написать функцию, которая создает НОВЫЙ столбец, в котором перечислены нечеткие оценки частичного отношения между цветом ОДНОГО объекта (т. Е. 'orange'
) и всеми цветами других объектов (т. Е. "navy blue"
, "white"
, "red-orange"
).
Во-первых, у меня есть функция, которая просматривает фрейм данных, чтобы найти цвет объекта. Его название findcolor(object)
. Если я вызываю findcolor(pumpkin)
, он ищет строку 'pumpkin'
и столбец 'Color'
и возвращает строку "orange"
(которая находится в этой ячейке). Я вызываю эту функцию внутри другой функции ниже, которая позволяет мне сравнивать цвета двух объектов внутри фрейма данных.
def getsingleFuzzyScore(object1,object2):
x = findcolor(object2)
b = findcolor(object1)
if b in x:
return 100
elif x in b:
return 100
else:
return(fuzz.partial_ratio(b,x))
Таким образом, в сущности, если какой-либо из цветов object1
содержится в цвете object2
, и наоборот, мой результат будет равен 100, в противном случае для сравнения будет использовано нечеткое соотношение двух цветов. Эта информация - то есть мое представление FuzzyScore - я хочу в качестве нового столбца в кадре данных.
Мне трудно вводить столбец 'Color'
из кадра данных. Этот вопрос ( Сравнение одной строки с массивом строк в C ) - это то, что я хочу сделать (но в python), и я хотел бы иметь возможность вызывать столбец объекта, т. Е. 'Color'
и сравнивают цвет тыквы с КАЖДЫМ из оставшихся объектов в столбце 'Color'
.
В заключение я хотел бы видеть, чтобы выходные данные были столбцом чисел, которые являются выходными данными getsingleFuzzScore
для КАЖДОГО объекта по сравнению с цветом объекта, который я ввел.