如何在Polars中将DataFrame的第一行设置为列名?
Polars中将第一行设为表头的实现方法
在Polars里不需要逐个手动重命名列,用以下步骤就能快速把第一行转为表头:
- 提取第一行作为新列名:用
df.row(0)获取第一行的所有值,这会返回一个包含该行所有元素的元组。 - 重命名列并移除原第一行:通过
rename方法结合列名映射字典完成重命名,再用slice(1)去掉原来的第一行。
完整示例代码
import polars as pl # 模拟原始DataFrame(第一行是要作为表头的内容) df = pl.DataFrame( [ ["姓名", "年龄", "城市"], ["张三", 25, "北京"], ["李四", 30, "上海"], ["王五", 28, "广州"] ] ) # 转换第一行为表头 df = df.rename(dict(zip(df.columns, df.row(0)))).slice(1) print(df)
运行后输出的DataFrame就会把原第一行作为列名,同时移除该行:
shape: (3, 3) ┌──────┬──────┬──────┐ │ 姓名 ┆ 年龄 ┆ 城市 │ │ --- ┆ --- ┆ --- │ │ str ┆ i64 ┆ str │ ╞══════╪══════╪══════╡ │ 张三 ┆ 25 ┆ 北京 │ │ 李四 ┆ 30 ┆ 上海 │ │ 王五 ┆ 28 ┆ 广州 │ └──────┴──────┴──────┘
补充说明
- 如果原第一行存在空值或
None,重命名后对应的列名会是None,这种情况建议提前处理第一行的缺失值,避免后续操作出错。 - 链式写法可以让代码更简洁,上面的转换逻辑也可以写成:
df = ( df .rename(dict(zip(df.columns, df.row(0)))) .slice(1) )
内容的提问来源于stack exchange,提问作者Horseman
相关产品推荐
相关产品推荐

