我运行如下查询:
select *
from sd_sms LEFT JOIN categories_phrases
on sd_sms.body like concat('%',categories_phrases.phrase1,'%')
and sd_sms.body like concat('%',categories_phrases.phrase2,'%')
and sd_sms.body like concat('%',categories_phrases.phrase3,'%')
and sd_sms.body like concat('%',categories_phrases.phrase4,'%')
基本上,如果表 A 中的一个字段包含表 B 中的多个短语,它将连接两个表。但现在我需要在 Python 中执行此操作。
是否有任何简单的方法可以使用 pandas 合并两个表,以便得到相同的结果?
请指教
最佳答案
此代码示例适用于连接子句中的文本数据和类似条件。
from pandasql import *
import pandas as pd
pysqldf = lambda q: sqldf(q, globals())
df1 = pd.DataFrame({"name": ['Antony', 'Mark', 'Jacob'], "age":
[11,12,13]})
df2 = pd.DataFrame({"name": ['Antony', 'Gill', 'John']})
q = """SELECT * FROM df1 LEFT JOIN df2 ON df1.name LIKE '%' || df2.name || '%'"""
df = pysqldf(q)
这只是一个带有示例数据的虚拟 DF,但我对您的问题应用了类似的条件。
希望它有用。
关于python - 使用 pandas 通过文本相似度合并两个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43779619/