Python链接数据库查询到Python datafram

2024-04-25 20:44:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个有7000行用户ID的电子表格。我需要查询数据库表并返回与电子表格中的ID匹配的结果

我目前的方法是将整个数据库表读入pandas数据框,然后与从电子表格创建的另一个数据框合并。由于表的大小,我不希望将整个表读入内存。有没有办法不在整张表中阅读就这样做?在Access或SAS中,我可以编写一个查询,将本地创建的表(即从电子表格创建的表)与数据库表链接起来

将整个表读入内存的当前代码

# read spreadsheet
external_file = pd.read_excel("userlist.xlsx")

# query
qry = "select id,term_code,group_code from employee_table"

# read table from Oracle database
oracle_data = pd.read_sql(qry,connection)

# merge spreadsheet with oracle data
df = pd.merge(external_file,oracle_data,on=['id','term_code'])

我意识到以下是不可能的,但我希望能够像这样查询数据库,“external_file”是从我的电子表格创建的数据框(或至少找到等效的解决方案):

query = """
select a.id,
a.term_code,
a.group_code
from employee_table a
inner join external_file b on a.id = b.id and a.term_code=b.term_code
"""

Tags: 数据fromidreaddatatablecodeexternal