Давний пользователь и впервые разместил здесь.
Я новичок в pandas и python. Я работаю с фреймом данных, который содержит либо одно значение, либо строку значений, разделенных точкой с запятой; второй фрейм данных - это список субподрядчиков и компании, которая контролирует субподрядчика. Я пытаюсь понять, как объединить эти фреймы данных на основе двух столбцов, которые могут содержать имена субподрядчиков. Чтобы сократить количество шагов, которые я пробовал с библиотекой pandas, я пробовал panda sql.
Я пробовал
on_resource_name = '''
SELECT
w.*, v.[Company Name], v.[Oversite Company] as [Survey Submitter Oversite Co]
FROM
wo_sat w
LEFT JOIN vendors v ON
v.[Company Name] LIKE '%'||w.[Embedded Data - Resource Name]||'%' OR
v.[Company Name] LIKE '%'||w.[Embedded Data - Source Company]||'%' OR
v.[Company Name] LIKE w.[Embedded Data - Resource Name]||'%' OR
v.[Company Name] LIKE w.[Embedded Data - Source Company]||'%'
;
'''
По какой-то причине подстановочные знаки игнорируются и возвращаются только точные совпадения. Например, если ячейка содержит только (SODEXO)
, возвращается Sodexo, но в ячейке, содержащей (SODEXO; Jerry Thompson; Bill Murray)
, значение не соответствует.
Любая помощь будет принята с благодарностью!