У меня есть списки ключевых слов и списки данных, которые я хочу сравнить. Я хотел бы, чтобы возвращение было float64 из 1, когда любая из строк совпадает.
import pandas as pd
import numpy as np
data=[['history', 'brain', 'scale', 'imaging', 'patterned', 'optogenetics', 'cellular', 'resolution'], ['infectious', 'fun', 'energy', 'iron', 'oxide', 'nanoparticles'], ['billie', 'holiday', 'project', 'bridging', 'art', 'local', 'history', 'community', 'wellness']]
keywords=[['history', 'literature', 'arts', 'humanities', 'philosophy', 'nan'], ['energy', 'optimization', 'systems', 'healthcare', 'policy', 'public', 'health']]
match=np.zeros(shape=(len(data),len(keywords)))
match=pd.DataFrame(match)
data=pd.DataFrame(data)
keywords=pd.DataFrame(keywords)
compare=data.isin(keywords)
В настоящее время он находит только первый пример «истории», но есть второй и не находит термина «энергия». Я хотел бы, чтобы результат был следующим:
print(match)
0 1
0 1.0 0.0
1 0.0 1.0
2 1.0 0.0
Я пробовал несколько разных методов itertools и без удачи перечислял циклы, любые мысли будут с благодарностью. Спасибо!