假设我有一个大致像这样的选择:
select instrument, price, date from my_prices;
如何将返回的价格解压缩到单个数据框中,其中包含每种工具的系列并按日期编制索引?
要明确:我正在寻找:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: ...
Data columns (total 2 columns):
inst_1 ...
inst_2 ...
dtypes: float64(1), object(1)
我不是在寻找:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: ...
Data columns (total 2 columns):
instrument ...
price ...
dtypes: float64(1), object(1)
…这很容易;-)
原文由 Chris Withers 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新:最近的熊猫有以下功能:
read_sql_table
和read_sql_query
。首先创建一个db引擎(连接也可以在这里工作):
请参阅 sqlalchemy 数据库网址。
pandas_read_sql_table
pandas_read_sql_query
旧答案引用了已弃用的 read_frame(请参阅此问题的 版本历史 以获取该答案)。
首先阅读通常是有意义的, 然后 根据您的要求执行转换(因为这些在 pandas 中通常是高效且可读的)。在您的示例中,您可以
pivot
结果:注意:您可能会错过
reset_index
您没有在index_col
中指定read_frame
。