小编典典

使用Pandas导入多个SQL表

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)

数据库中表的数量将发生变化,并且我希望能够随时将每个表导入其自己的数据框中。如何将所有这些桌子放入大熊猫中?


阅读 180

收藏
2021-04-07

共1个答案

小编典典

根据您的SQL Server,您可以检查数据库中的表。

例如:

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为键的数据框

2021-04-07