如何在python中选择postgres查询时重命名列名?

时间:2021-07-25 12:28:27

标签: python-3.x pandas postgresql

我正在尝试从 python 中的 postgres 服务器获取数据,而在数据库中,列是井名,例如“id”、“name”、“email”等,但是当我在 python 中提取这些列时,我得到列名称为 0、1、2 等。

这是我的python代码:

import psycopg2
import psycopg2.extras

DB_HOST = "xx.xxx.xxx.xxx"
DB_NAME = "my_db"
DB_USER = "my_user"
DB_PASS = "********"
PORT = 5432

conn = psycopg2.connect(host=DB_HOST, port = PORT, database=DB_NAME, user=DB_USER, password=DB_PASS)

# Create a cursor object
cur = conn.cursor()

cur.execute("""SELECT id, name, email FROM users""")

users = cur.fetchall()

cur.close()
conn.close()

如果我选中 users,我会得到如下列表:

[(13, 'Vaibhav Saxena', 'vaibhavsxn@gmail.com')]

现在,我将其转换为熊猫数据框:

pd.DataFrame(users)

我得到的数据帧如下:

0          1              2
13   Vaibhav Saxena   vaibhavsxn@gmail.com

我希望第 0、1 和 2 列作为“id”、“name”和“email”,就像在我选择数据时以及将其转换为数据框之前在数据库中一样。有什么提示吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法吗?

columns = [d[0] for d in cur.description]
pd.DataFrame(users, columns=columns)
相关问题