我有一个包含多个表的数据库,并且我试图将每个表作为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)
数据库中表的数量将发生变化,并且我希望能够随时将每个表导入其自己的数据框中。如何将所有这些桌子放入大熊猫中?
根据您的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为键的数据框
frames_dict