gpt4 book ai didi

python - 在 SQL 连接中使用 Pandas Dataframe

转载 作者:行者123 更新时间:2023-11-29 14:14:30 24 4
gpt4 key购买 nike

我正在尝试使用 Postgres 数据库中的外部表对数据框的内容执行 SQL 连接。

这是数据框的样子:

>>> df
name author count
0 a b 10
1 c d 5
2 e f 2

我需要将它与一个如下所示的 Postgres 表连接起来:

TABLE: blog
title author url
a b w.com
b b x.com
e g y.com

这是我正在尝试做的,但这似乎不是查询的正确语法:

>>> sql_join = r"""select b.*, frame.*  from ({0}) frame
join blog b
on frame.name = b.title
where frame.owner = b.owner
order by frame.count desc
limit 30;""".format(df)

>>> res = pd.read_sql(sql_join, connection)

我不确定如何在 sql 查询中使用数据框中的值。有人能指出我正确的方向吗?谢谢!

编辑:根据我的用例,我无法将博客表转换为给定内存和性能限制的数据框。

最佳答案

我设法做到了这一点,而无需将数据框转换为临时表,也无需将 SQL 从博客表读入数据框。

对于面临相同问题的任何其他人,这是通过使用某种虚拟表来实现的。

这就是我最终的 sql 查询:

>>> inner_string = "VALUES ('a','b',10), ('c','d',5), ('e','f',2)"

>>> sql_join = r"""SELECT * FROM blog
JOIN ({0}) AS frame(title, owner, count)
ON blog.title = frame.title
WHERE blog.owner = frame.owner
ORDER BY frame.count DESC
LIMIT 30;""".format(inner_string)

>>> res = pd.read_sql(sql_join, connection)

您可以使用字符串操作将数据框中的所有行转换为一个类似于 inner_string 的大字符串。

关于python - 在 SQL 连接中使用 Pandas Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54139851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com