Polars 中高效截断 DataFrame 列:保留指定列及之前所有列
Polars 中高效截断 DataFrame 列:保留指定列及之前所有列

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
在 Polars 中,若需保留从首列到目标列(如 'XYZ')的所有列,丢弃其后全部列,最简洁高效的方式是使用切片语法 df[:, :'XYZ'],它语义清晰、性能优异且无需手动查找索引。
处理数据时,一个常见的需求是:只想保留从第一列到某个关键列之间的所有数据,后面的列统统不要。如果你从 Pandas 转来,可能会习惯性地去计算列索引,但在 Polars 里,其实有更优雅的解法。
Polars 原生支持直接用列名进行切片,这让列范围的截断操作变得异常直观。核心秘诀就在于这个写法:df[:, :'目标列名']。这就像对列表切片一样自然,它的意思是“从开头切到目标列(包括这一列)为止”,代码即语义,一目了然。
光说不练假把式,来看一个具体的例子:
import polars as pl
df = pl.DataFrame({
'ABC': [1, 2, 3],
'DEF': [4, 5, 6],
'XYZ': [7, 8, 9],
'GHI': [10, 11, 12],
'JKL': [13, 14, 15]
})
# ✅ 推荐:一行完成,语义明确,零额外开销
result = df[:, :'XYZ']
print(result)
运行上面的代码,你会得到如下输出:
shape: (3, 3) ┌─────┬─────┬─────┐ │ ABC ┆ DEF ┆ XYZ │ │ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ i64 │ ╞═════╪═════╪═════╡ │ 1 ┆ 4 ┆ 7 │ │ 2 ┆ 5 ┆ 8 │ │ 3 ┆ 6 ┆ 9 │ └─────┴─────┴─────┘
看,`‘GHI’`和`‘JKL’`列已经被干净利落地移除了,只保留了`‘XYZ’`及其之前的所有列。这种方法的优势在于,其底层实现会直接解析列名位置,省去了显式调用columns.index()这类查找索引的步骤。代码更短只是表面好处,真正关键的是它避免了潜在的重复查找开销,在处理列数众多的“宽表”时,性能优势会更加明显。
当然,有两点需要特别注意:
- 列名必须存在:目标列(如`‘XYZ’`)必须在DataFrame中,否则Polars会抛出
ColumnNotFoundError。 - 容错处理:如果不确定目标列是否存在,安全的做法是先判断:
if ‘XYZ’ in df.columns:,然后再执行切片操作。 - 维度理解:这个切片语法
df[行, 列]中的冒号,作用于第二个维度(列维度),行维度保持不变,这符合Polars统一的索引协议。
总而言之,当你需要在Polars中截断列尾时,df[:, :‘target_col’]就是那个兼具可读性、简洁性与高性能的标准答案。记住它,下次就能省下不少功夫。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
VSCode编辑器界面透明度插件_打造极客风格的透明窗口
VSCode窗口透明化:从主窗口到编辑器区域,一份避坑指南 想让你的VSCode编辑器拥有酷炫的透明效果?市面上方法不少,但坑也多。一不小心,就可能遇到插件无效、窗口闪烁,或者更新后一切归零的尴尬。今天,我们就来彻底理清VSCode透明化的几种路径,帮你找到最可靠、最轻量的那个方案。 VSCode
Sublime如何配置C++编译环境?Sublime运行C语言代码详细步骤
能直接用g++ --version在终端输出版本号才说明编译器安装正确;否则Sublime配置再完善也无效,因其GUI启动不继承shell的PATH环境变量。 一个核心原则必须牢记:只有能在终端里直接敲出 g++ --version 并看到版本号,你的编译器才算真正装好了。否则,在 Sublime
VSCode安装ProjectManager 快速切换VSCode多个项目目录
Project Manager插件需手动保存项目才能切换,因其不自动发现无特征文件(如package json)的目录;命令无效、列表为空或路径失效等问题,均源于未正确配置projects json或路径不可用。 这里有个核心概念需要先明确:Project Manager 插件本身并不会自动帮你发现
Atom如何配置Haskell?Atom搭建Haskell开发环境指南
Atom如何配置Haskell?Atom搭建Haskell开发环境指南 先说一个核心判断:如今在 Atom 里配置 Haskell 开发环境,已经不再是一个推荐选项了。原因很简单,整个生态支持早已断代。那些曾经主流的插件,比如 haskell-ghc-mod 和 ide-haskell,维护工作早就
如何在VSCode自定义代码片段(Snippets)中自动插入当前的日期和时间
如何在VSCode自定义代码片段(Snippets)中自动插入当前的日期和时间 VSCode代码片段里怎么用$CURRENT_YEAR这类变量 先说一个核心事实:VSCode本身并不支持像$TODAY或$NOW这样的动态时间变量。所有以$开头的占位符,无论是$1还是$TM_FILENAME,本质上都
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

