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

如何在Python-Polars中选择除指定列外的所有整数列?

Polars高效选择整数列并排除指定列

要实现选择所有整数列但排除p和z列的需求,不用手动逐个列名,用Polars内置的选择器(selectors)可以高效解决,以下是两种实用方法:

方法1:选择器逻辑组合

利用polars.selectors的逻辑运算,先匹配所有整数类型列,再排除指定列:

import polars as pl
import polars.selectors as cs

# 原始DataFrame定义
df = pl.DataFrame(
    {
        'p': [1, 2, 1, 3, 1, 2],
        'x': list(range(6, 0, -1)),
        'y': list(range(2, 8)),
        'z': [3, 4, 5, 6, 7, None],
        "q" : list('abcdef')
    }
)

# 选择整数列并排除p、z
result = df.select(cs.integer() ~ cs.by_name("p", "z"))
print(result)

方法2:列对象的exclude方法

先通过选择器选中所有整数列,再调用exclude方法移除指定列:

result = df.select(pl.col(cs.integer()).exclude("p", "z"))
print(result)

两种方法都会得到相同的结果:

shape: (6, 2)
x   y
i64 i64
6   2
5   3
4   4
3   5
2   6
1   7

原理说明

  • cs.integer():匹配DataFrame中所有整数类型的列(包括i64等整数类型)
  • ~ cs.by_name("p", "z"):对指定列名取反,即排除这些列
  • pl.col(cs.integer()).exclude("p", "z"):先筛选整数列,再从结果中排除指定列名

这两种方式都能轻松应对列数众多的场景,无需手动枚举列名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 01:22:14