import pandas as pd import sqlalchemy as sa engine = sa.create_engine('mysql+pymysql://user:password@host/db') df = pd.read_sql('SELECT * FROM table', engine) print(df.head()) # 高效读取数据库数据,实现实时分析
使用Pandas连接MySQL数据库
首先安装必要的库:pip install pandas sqlalchemy pymysql。然后创建引擎:from sqlalchemy import create_engine; engine = create_engine('mysql+pymysql://root:password@localhost/testdb')。读取数据:df = pd.read_sql_query("SELECT * FROM users LIMIT 1000", engine)。这样就能快速加载数据到DataFrame中进行分析。
SQLite与Pandas整合
Pandas内置支持SQLite,无需额外驱动。df = pd.read_sql_query("SELECT * FROM table", 'sqlite:///mydatabase.db')。写入数据:df.to_sql('new_table', conn, if_exists='replace')。简单高效,适合本地数据分析。
PostgreSQL数据高效拉取
安装psycopg2:pip install psycopg2。engine = create_engine('postgresql://user:pass@host/dbname')。df = pd.read_sql("SELECT * FROM sales WHERE date > '2023-01-01'", engine)。结合query参数,实现跨平台数据整合。
告别数据孤岛:多源数据合并
从不同数据库读取:df1 = pd.read_sql(..., engine1); df2 = pd.read_sql(..., engine2); merged = pd.merge(df1, df2, on='id')。实时洞察,提升决策效率,避免孤岛。
优化大数据读取
使用chunksize参数:for chunk in pd.read_sql_query(sql, engine, chunksize=10000): process(chunk)。内存高效,适合海量数据分析。
实时数据洞察示例
df = pd.read_sql('SELECT * FROM metrics', engine) insights = df.groupby('category').agg({'value': 'sum'}) print(insights)
FAQ
Q: 如何安装连接库?
A: pip install sqlalchemy pymysql/psycopg2/sqlite
Q: 支持哪些数据库?
A: MySQL, PostgreSQL, SQLite, Oracle等
Q: 如何处理大表?
A: 用chunksize或SQL LIMIT/WHERE过滤
Q: 写入数据库怎么做?
A: df.to_sql('table', engine, if_exists='append')