使用pandas导入多个SQL表[英] Importing multiple SQL tables using pandas

本文是小编为大家收集整理的关于使用pandas导入多个SQL表的处理方法,想解了使用pandas导入多个SQL表的问题怎么解决?使用pandas导入多个SQL表问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有一个包含多个表的数据库,我正在尝试将每个表作为 pandas 数据框导入.我可以为单个表执行此操作,如下所示:

import pandas as pd
import pandas.io.sql as psql
import pypyodbc

conn = pypyodbc.connect("DRIVER={SQL Server};\
                        SERVER=serveraddress;\
                        UID=uid;\
                        PWD=pwd;\
                        DATABASE=db")

df1 = psql.read_frame('SELECT * FROM dbo.table1', conn)

数据库中的表数量会发生变化,并且我希望能够随时将每个表导入到自己的数据框中.如何将所有这些表放入 pandas?

推荐答案

根据您的 SQL 服务器,您可以检查数据库中的表.

例如:

tables_df = pd.read_sql('SELECT table_name FROM database_name', conn)

现在您的表名可以作为 pandas 数据框访问,您只需将其解析出来:

table_name_list = tables_df.table_name

select_template = 'SELECT * FROM {table_name}'
frames_dict = {}
for tname in table_name_list:
    query = select_template.format(table_name = tname)
    frames_dict[tname] = pd.read_sql(query, conn)

您的字典 frames_dict 包含所有以 table_name 为键的数据帧

本文地址:https://www.itbaoku.cn/post/1727837.html