可以使用^{}将df加载到数据库表中:df.to_sql(tablename, engine, if_exists='replace')
然后在数据库中执行联接,并使用^{}将结果读入新的数据帧:
^{pr2}$
例如,使用SQLAlchemy:import pandas as pd
import sqlalchemy as SA
import config
df = pd.DataFrame({'SEC1':['IBM','CSCO','MSFT','AMZN' ], 'SEC2':['GOOG', 'INTC', 'ABX', 'CREE'], 'HOUR':[10 ,10 ,15, 12], 'Size':[100 ,200 ,50 ,500],'Price':[300 ,25 ,150, 80] })
df = df[['SEC1', 'SEC2', 'HOUR', 'Size', 'Price']]
engine = SA.create_engine('mysql+oursql://{u}:{p}@{h}/{d}'.format(
u=config.USER, p=config.PASS, h=config.HOST, d='test'))
tablename = 'Table-A'
df.to_sql(tablename, engine, if_exists='replace')
sql = '''select * from Table-A a
left join Table-B b
on (a.sec1 = b.sec1)
where DATE_SUB(CURDATE(),INTERVAL 12 MONTH) <= dt
group by 1,2,3,4,5,6,7'''
result = pd.read_sql(sql, engine)