如何根据数据库游标描述初始化polars数据框的列名?

0 投票
1 回答
75 浏览
提问于 2025-04-14 16:26

我正在使用psycopg2连接Postgres数据库,并通过游标属性获取记录和它们的列名。下面是相关的代码片段:

rds_conn = psycopg2.connect(
        host=config.RDS_HOST_NAME,
        database=config.RDS_DB_NAME,
        user=config.RDS_DB_USER,
        password=config.RDS_DB_PASSWORD,
        port=config.RDS_PORT)
    cur = rds_conn.cursor()
    cur.execute(sql_query)
    names = [x[0] for x in cur.description]
    rows = cur.fetchall()
    cur.close()

我正在用游标的cursor.description属性中的列名来初始化一个Pandas数据框:

 df = pd.DataFrame(rows, columns=names)

如果我想用游标的cursor.description属性中的列名来初始化一个Polars数据框,而不是Pandas数据框,我该怎么做呢?我不想把Pandas数据框转换成Polars数据框。

我尝试使用polars.Dataframe.with_Columns属性,但没有成功。

有人能帮我一下吗?

1 个回答

1

你可以直接把列的名称传递给pl.DataFrameschema参数。

import polars as pl

names = ["a", "b", "c"]
rows = [[0], [True], ["foo"]]

pl.DataFrame(rows, schema=names)
shape: (1, 3)
┌─────┬──────┬─────┐
│ a   ┆ b    ┆ c   │
│ --- ┆ ---  ┆ --- │
│ i64 ┆ bool ┆ str │
╞═════╪══════╪═════╡
│ 0   ┆ true ┆ foo │
└─────┴──────┴─────┘

撰写回答