将sql select打包成大熊猫数据帧
发布时间:2020-12-12 16:47:03 所属栏目:MsSql教程 来源:网络整理
导读:假设我有一个这样的选择: select instrument,price,date from my_prices; 如何将每个工具的系列产品的价格退回到单个数据框中,并按日期进行索引? 要清楚:我在寻找: class 'pandas.core.frame.DataFrame'DatetimeIndex: ...Data columns (total 2 columns)
假设我有一个这样的选择:
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). 首先阅读通常是有意义的,然后根据您的要求进行转换(因为这些通常在熊猫中是高效和可读的).在你的例子中,你可以 df.reset_index().pivot('date','instrument','price') 注意:您可能会错过reset_index,您不会在read_frame中指定index_col. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |