我有两张股票报价器。
我创建了SQL联合查询以合并两个表。
query_combined = session\
.query(Table1, Table2)\
.join(Table2, Table1.ticker==Table2.ticker)
然后我将SQL馈送到Pandas以便在框架中加载:
df_combined = pandas\
.read_sql(query_combined.statement,
query_combined.session.bind,
index_col='ticker')
但是,由于联接表中有两个“行情指示器”列,因此设置index_col ='ticker'将导致索引列'(ticker,ticker)'元组。 我只想指定“ ticker”列之一作为数据帧索引,但不确定如何。
我是熊猫的新手,并且确信这很简单,但是在谷歌搜索的那一刻,我还没有找到答案。预先感谢您为我指明了正确的方向。
答案 0 :(得分:0)
请考虑with_labels
以使用下划线<table>_<column>
来修饰不明确的列:
df_combined = (pandas
.read_sql(query_combined.with_labels().statement,
query_combined.session.bind,
index_col='Table1_ticker')
)
要缩短表名,请在连接之前alias个表:
t1 = aliased(t1, Table1)
t2 = aliased(t2, Table2)
query_combined = (session
.query(t1, t2)
.join(t2, t1.ticker==t2.ticker)
)