Как получить столбец нечетких оценок (сравнивая одну строку со столбцом строк) в кадре данных, python - PullRequest
0 голосов
/ 03 июля 2018

У меня есть датафрейм, который перечисляет объекты и их различные качества в столбцах. Один из этих столбцов - цвета объектов. Моя цель состоит в том, чтобы написать функцию, которая создает НОВЫЙ столбец, в котором перечислены нечеткие оценки частичного отношения между цветом ОДНОГО объекта (т. Е. '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 для КАЖДОГО объекта по сравнению с цветом объекта, который я ввел.

...