python - 将 sql 选择解压缩到 pandas 数据框中

标签 python sql pandas

假设我有一个大致像这样的选择:

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)

...这很容易;-)

最佳答案

您可以将光标对象传递给 DataFrame 构造函数。对于 postgres:

import psycopg2
conn = psycopg2.connect("dbname='db' user='user' host='host' password='pass'")
cur = conn.cursor()
cur.execute("select instrument, price, date from my_prices")
df = DataFrame(cur.fetchall(), columns=['instrument', 'price', 'date'])

然后设置索引像

df.set_index('date', drop=False)

或直接:

df.index =  df['date']

关于python - 将 sql 选择解压缩到 pandas 数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17156084/

相关文章:

python turtle : Draw concentric circles using circle() method

对频率列表进行 t 检验的 Python 程序

python - 递归公式带有循环很慢,有没有办法让这段代码运行得更快?

python - 如何绘制由 python 中的向量给出的结构的表面?

sql - 如何将 BINARY(8000) 列转换为 VARBINARY(MAX)

mysql - 仅允许具有标识符的实体将实体绑定(bind)到查询参数

mysql - SQL选择其中1个值大于然后从其他4个中选择一个

python - 更快地附加 Pandas 系列的有序频率

python - 安装 pandas 包时出错 : no module named numpy

python - 如何为列中的每个类别创建行?