【发布时间】:2016-02-24 13:58:31
【问题描述】:
我想将 psycopg2 DictRow 查询转换为 pandas 数据框,但 pandas 一直在抱怨:
curs = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
curs.execute("SELECT * FROM mytable")
data = curs.fetchall()
print type(data)
print pd.DataFrame(list(data))
但是,尽管我专门传递了list???,但我总是收到错误消息?
<type 'list'>
TypeError: Expected list, got DictRow
如果我做pd.DataFrame(data),结果是一样的,有人可以帮我完成这项工作吗?
如果数据框的列名有效(即提取 DictRow 并将它们传递给数据框)也会很好。
更新:
由于我需要处理数据,我想按原样使用来自 psycopg2 查询的数据,而不是 pandas approach,例如read_sql_query。
【问题讨论】:
-
在 GitHub 上打开了一个问题:github.com/pydata/pandas/issues/14169