python - 使用 pandas 通过文本相似度合并两个数据框

标签 python postgresql pandas text

我运行如下查询:

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/

相关文章:

javascript - 如何改进用于生产的 Node js 代码并将其正确地跨文件拆分?

sql - 从事件流中 self 加入日期的有效方法是什么?

python - 如何将多个 pandas 数据帧写入单个输出 excel 文件?

python - 将嵌套字典转换为表/父子结构,Python 3.6

python - 如何从自定义 LoginRequired 中间件中重新使用 Django Admin 登录表单

python - 在 Pandas DataFrame 中附加字符串和累积计数

python - 如何在已经训练好的 xgboost 模型上使用 CalibrateClassifierCV?

mysql - 如何将文件转换为带有外键的INSERT?

python - Tensorflow如何生成不平衡的组合数据集

python - 在 pandas.DataFrame 的对角线上设置值