如何根据数据库游标描述初始化polars数据框的列名?
我正在使用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.DataFrame
的schema
参数。
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 │
└─────┴──────┴─────┘