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

如何从Polars DataFrame中按列名列表选取指定列?

Polars按列名列表选取列的常用方法

首先,你的初始DataFrame定义如下:

import polars as pl
import numpy as np

df = pl.DataFrame(
    {
        "nrs": [1, 2, 3, None, 5],
        "names": ["foo", "ham", "spam", "egg", None],
        "random": np.random.rand(5),
        "groups": ["A", "A", "B", "C", "B"],
    }
)

mylist = ['nrs', 'random']

你使用cs.by_name()的方法是可行的,但并非Polars中按列名列表选列的惯用简洁方式,更优的实现有以下几种:

1. 直接传入列名列表给select

这是最常用、最直观的方式,无需额外导入模块:

df.select(mylist)

2. 使用DataFrame索引语法

和Pandas用法类似,代码更简短:

df[mylist]

以上两种方式都能得到你想要的结果:

shape: (5, 2)
┌──────┬──────────┐
│ nrs  ┆ random   │
│ ---  ┆ ---      │
│ i64  ┆ f64      │
╞══════╪══════════╡
│ 1    ┆ 0.727509 │
│ 2    ┆ 0.14311  │
│ 3    ┆ 0.244337 │
│ null ┆ 0.603872 │
│ 5    ┆ 0.222068 │
└──────┴──────────┘

关于cs.by_name()的适用场景

cs.by_name()属于Polars选择器工具的一部分,它更适合复杂列选择场景——比如需要和其他选择器(类型匹配、正则匹配等)组合使用时,才能体现价值:

import polars.selectors as cs

# 示例:选择指定列名 + 所有浮点类型列
df.select(cs.by_name(mylist) + cs.float())

如果只是单纯按列名列表选列,使用前两种方式会更简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 01:10:15