将sql select打包成大熊猫数据帧

前端之家收集整理的这篇文章主要介绍了将sql select打包成大熊猫数据帧前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个这样的选择:
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)

这很容易;-)

解决方法

更新:最近的熊猫具有以下功能:read_sql_table和read_sql_query.

首先创建一个db引擎(一个连接也可以在这里工作):

from sqlalchemy import create_engine
# see sqlalchemy docs for how to write this url for your database type:
engine = create_engine('MysqL://scott:tiger@localhost/foo')

sqlalchemy database urls.

pandas_read_sql_table

table_name = 'my_prices'
df = pd.read_sql_table(table_name,engine)

pandas_read_sql_query

df = pd.read_sql_query("SELECT instrument,date FROM my_prices;",engine)

旧的答案引用了已被弃用的read_frame(请参阅该问题的version history).

首先阅读通常是有意义的,然后根据您的要求进行转换(因为这些通常在熊猫中是高效和可读的).在你的例子中,你可以pivot的结果:

df.reset_index().pivot('date','instrument','price')

注意:您可能会错过reset_index,您不会在read_frame中指定index_col.

原文链接:https://www.f2er.com/mssql/81371.html

猜你在找的MsSQL相关文章