У меня есть следующие рамки данных Pandas со следующими схемами:
Входные данные здесь:
id identifier
1 SQL
2 JAVA
3 C#
- df_2:
- id
- string_resume
- string_long
Введите здесь:
id string_resume string_long
1 Structured Query Language SQL is a domain-specific language
2 Java is a general-purpose programming language It is intended to let application developers “write once, run anywhere” (WORA)
3 PHP is a programming language Usually it is used for Web Apps
И я пытаюсь присоединиться, чтобы увидеть, принадлежит ли столбец идентификатора string_resume или string_long.Я сделал логику в SQL:
SELECT *
FROM df_1
INNER JOIN df_2 ON
df_1.id = df_2.id
AND ( df_2.string_resume LIKE '%' + df_1.identifier + '%'
OR df_2.string_long LIKE '%' + df_1.identifier + '%'
)
В Python я пытаюсь использовать приведенный ниже код (слияние), но он возвращает только внутреннее соединение с операцией "=".
res = pd.merge(df_1, df_2, left_on=['id', 'identifier'], right_on=['cod_system_log_event', 'string_resume', 'string_long'], how='left').drop('id', axis=1)
Выходные данные должны быть:
id identifier id string_resume string_long
1 SQL 1 Structured Query Language SQL is a domain-specific language used in programming
2 JAVA 2 Java is a general-purpose programming language It is intended to let application developers “write once, run anywhere” (WORA)
Как применить приведенную выше логику SQL в Python?
Большое спасибо