нечеткое совпадение в python с условием if - PullRequest
0 голосов
/ 11 марта 2020

У меня есть два набора данных, в которых мне нужно было найти похожие совпадения, используя fuzzywuzzy или любые другие параметры,

Набор данных содержит столбец, как указано ниже (столбцы одинаковы в обоих наборах данных, но в строках отличается)

SLNo | Название продукта | Бренд

Сначала мне нужно найти сходство бренда, если сходство бренда превышает 95, тогда мне нужно проверить сходство названия продукта

я пробовал ниже Код

import pandas as pd
from fuzzywuzzy import process, fuzz

Bl=pd.read_excel(r'C:\Datas\BLRL3.xlsx')
master=pd.read_excel(r'C:\Datas\MO.xlsx')

actual_Name= []
similarity = []
brandsimilarity = []

for i in Bl.Productname:
        for j in Bl.Brand:
                brandratio = process.extract( i, master.Brand, limit=1,scorer=fuzz.token_sort_ratio)
                brandsimilarity.append(brandratio[0][1])
                if brandsimilarity > 95:
                        ratio = process.extract( i, master.Productname, limit=1,scorer=fuzz.token_sort_ratio)
                        actual_Productname.append(ratio[0][0])
                        similarity.append(ratio[0][1])


Bl['actual_Name'] = pd.Series(actual_Name)
Bl['similarity'] = pd.Series(similarity)
Bl['brandsimilarity']=pd.Series(brandsimilarity)

Bl.to_csv("oput2503-2.csv",index = False)

Ошибка: если сходство брендов> 95: Ошибка типа: '>' не поддерживается между экземплярами 'list' и 'int'

1 Ответ

0 голосов
/ 29 марта 2020

В качестве состояния ошибки это TypeError для сравнения списка с целым числом. Для достижения того, что вы хотите, вы не должны использовать

brandsimilarity.append(brandratio[0][1])

, но

brandsimilarity = brandratio[0][1]
...