Я получаю ошибку: TypeError: объект 'NoneType' недопустим
В этом методе я пытаюсь выполнить сопоставление строк для двух файлов (test & master).
Главный файл содержит правильно написанные названия продуктов, в то время как тестовый файл содержит неправильно написанные или просто по-разному написанные версии этих продуктов.
Я пытаюсь сопоставить их вместе с функцией extractBests, чтобы включить срез при определенном балле. Также, если я печатаю более ранние шаги моего вывода, например, переменная fhp_new, она все еще работает.
Я думаю, что ошибка как-то вызвана тем фактом, что некоторые строки не дают совпадений, которые находятся в пределах предела Score_cutoff, потому что я не получаю ошибку, когда я наложил ограничение, скажем, на 20. Так что в теории те строки должны оставаться пустыми, но это вызывает ошибку, я думаю.
Эта строка кода вызывает ошибку:
for x in range (1, num_match + 1):
d["Match{0}".format(x)] = [y[0] for y in aggregated_matches["Match" + str(x)]]
Это полный код до строки ошибки
def StringMatch (master, testfile, num_match=3, score_cutoff=95, limit=3):
master_names = master.iloc[:,3]
test_names = testfile.iloc[:,0]
fhp_new = [process.extractBests(x, master_names, score_cutoff=score_cutoff,limit=limit) for x in test_names]
lab=" "
i=1
while i<=num_match:
lab = lab + " " + "Match" + str(i)
i = i+1
aggregated_matches = pd.DataFrame(fhp_new, columns = lab.split())
d={}
for x in range (1, num_match + 1):
d["Match{0}".format(x)] = [y[0] for y in aggregated_matches["Match" + str(x)]]
print(d)