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

在Pandas中筛选特定列时,为何要将columns.values转为列表?

为什么要将columns.values转换为列表?

这段代码里把ds.columns.values转成列表,核心原因有这几个:

  • 适配列名拼接逻辑:代码里用cols[1:3] + cols[5:6] + [cols[9]]来组合不同区间的列名。如果直接用ds.columns(Pandas的Index对象)或者ds.columns.values(NumPy的ndarray数组)执行+操作,结果会完全不对:ndarray的+是元素级的算术加法,Index的+如果列名是字符串的话会变成字符串拼接,都不是我们需要的「合并多个列名集合」的效果。而Python原生列表的+操作就是直接合并元素,完美匹配这里的需求。

  • 兼容性与操作灵活性:在早期Pandas版本中,Index对象的操作限制比列表多,比如某些切片、索引的行为和列表不一致。转成原生列表后,用熟悉的Python列表操作处理列名,兼容性更好,也不容易出现意料之外的问题。

  • 代码可读性更强:列表是Python开发者最熟悉的数据结构之一,转成列表后,后续的切片、拼接操作一目了然,代码意图更清晰,不需要额外理解Pandas Index或NumPy数组的特殊行为。

顺带提一句,在新版Pandas里,直接写list(ds.columns)就能得到列名的列表,和list(ds.columns.values)效果完全一样,写法更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 23:54:30