繁体   English   中英

如何将SQL查询循环的结果附加到数据框

[英]How can I append results from a loop of SQL queries to a dataframe

我有一些通过对熊猫所做的分析而创建的价值列表。 然后,我想运行一个for循环以使用该列表中的每个值执行SQL查询。

我希望将这些结果添加到新的DataFrame中-我可以事先进行初始化,或者将每个结果添加到新的DataFrame中,然后我可以自己添加。

下面是示例代码,其中df ['a']是我先前分析的结果列。

df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
columns=['a', 'b', 'c'])
x = df['a']
r = pd.DataFrame(columns=['F', 'G', 'H', 'I'])
for m in x:
    r.append(pd.read_sql_query("""SELECT a.F,a.G,a.H,a.I
                                    FROM users a
                                    WHERE a.F ="""+m,engine))

我想将所有数据附加到r

您应该执行一个查询,而不是遍历x ,如下所示:

SELECT a.F,a.G,a.H,a.I FROM users a WHERE a.F in (1, 4, 7)

下面的代码可以做到这一点:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
    columns=['a', 'b', 'c']
)

x = df['a']
x_list = ', '.join(str(i) for i in x)

r = pd.DataFrame(columns=['F', 'G', 'H', 'I'])
query = f'SELECT a.F,a.G,a.H,a.I FROM users a WHERE a.F in ({x_list})'
r.append(pd.read_sql_query(query, engine))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM