You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从NumPy数组创建Polars DataFrame并指定列名?

如何从NumPy数组创建带指定列名的Polars DataFrame

你遇到的问题是因为Polars的DataFrame构造函数没有columns参数(这和Pandas的API设计不同),不过不用先创建再重命名,直接用schema参数就能在创建时指定列名,更高效。

直接指定列名的方法

Polars的schema参数支持传入字符串列表,用来定义每一列的名称。你可以直接把生成的列名列表传给它,甚至不需要把NumPy数组转成list(Polars可以直接处理NumPy数组):

import polars as pl
import numpy as np

# 示例NumPy数组
noisy_data = np.random.rand(5, 3)
num_columns = noisy_data.shape[1]

# 使用schema参数指定列名
df = pl.DataFrame(noisy_data, schema=[f"property_{i}" for i in range(num_columns)])
print(df)

执行后会直接生成带有property_0、property_1、property_2列名的DataFrame。

备选方案:创建后重命名列

如果确实需要先创建DataFrame再调整列名,也可以用rename方法快速完成:

df = pl.DataFrame(noisy_data)
# 按顺序重命名所有列
df = df.rename([f"property_{i}" for i in range(num_columns)])

或者写成更简洁的一行:

df = pl.DataFrame(noisy_data).rename([f"property_{i}" for i in range(num_columns)])

补充说明

Polars的schema参数不仅能指定列名,还可以同时定义列的数据类型(比如schema={"property_0": pl.Float64, "property_1": pl.Int32});如果只传列名列表,Polars会自动推断每一列的数据类型,和直接传入数组时的行为一致。

内容的提问来源于stack exchange,提问作者Pau Marin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 16:16:01