【问题标题】:Importing multiple SQL tables using pandas使用 pandas 导入多个 SQL 表
【发布时间】:2015-12-30 23:18:30
【问题描述】:

我有一个包含多个表的数据库,我正在尝试将每个表作为 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?

【问题讨论】:

    标签: python sql database pandas


    【解决方案1】:

    根据您的 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 为键的数据帧

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-16
      • 1970-01-01
      • 2019-11-02
      • 2018-05-26
      • 2014-08-06
      相关资源
      最近更新 更多