繁体   English   中英

从 python 中的 MySQL 表创建数据帧的 pandas 列表

[英]Creating pandas list of data frames from MySQL tables in python

我有 MySQL 服务器,我们可以称之为 MySever,该服务器上有一百个数据库,我们可以称之为数据库:database1、database2、database3…database100。 每个数据库都有一个名为 tablepull 的表。 我想要做的是获取每个数据库中的每个名为“tablepull”的表,并将该表存储到 python 列表中,表“tablepull”对于每个数据库都有完全相同的标题,并且可以在 Z3A425AZC55057DZ 中保存为 dataframe。

以下是定义的变量:

from sqlalchemy import create_engine
import pandas as pd

UserName = MyUserName
Password = MyPassword
Server = MyServer
Databases = [‘database1’, ‘database2’, ‘database3’,… ‘database100’]
Table = tablepull

我可以使用以下语法轻松拉出一个数据库表:

engine = create_engine(mssql:// UserName: Password@Server/Table?driver=SQL Server Native Client 11.0')
connection = engine.connect()
cnxn = connection.connection
#Read in data into from sql table#
raw_data = pd.read_sql(sql = """SELECT * FROM Table""", con = cnxn)

目标是能够遍历所有数据库并为每个数据库获取所需的表(tablepull)并保存到列表中。 任何帮助或指导将不胜感激。

谢谢你

您可以连接到多个数据库,前提是它们在同一台服务器上,无需在connect命令中指定数据库名称。

现在,您可以拥有一个包含所有数据库名称的列表:

db_list = ['db1', 'db2', ... 'db100']
df_dict = {}

for c, db in enumerate(db_list):
    sql = """SELECT * FROM {}.Table"""
    df_dict[c] = pd.read_sql_query(sql.format(db), engine)        

最后你会得到一个包含所有数据框的dictionary

这应该会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM