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

如何在Pandas中基于条件对多列进行向量化处理?

解决Pandas多列条件赋值问题
  • 你的问题出在列选择的语法上,'A' & 'B'这种写法是错误的,因为&是布尔运算符,不能直接用来拼接列名。要选择多列,你需要把列名放在列表里。

正确的向量化写法

直接把目标列名组成列表传给loc的列索引部分即可,这是Pandas原生支持的向量化操作,效率很高:

target_columns = ['A', 'B', 'C', 'D', 'E']
df.loc[df['Pos'] == "Between 10,001 and 26,000", target_columns] = "N/A"

简化写法(直接写列表)

如果不想单独定义变量,也可以直接在loc里写列名列表:

df.loc[df['Pos'] == "Between 10,001 and 26,000", ['A', 'B', 'C', 'D', 'E']] = "N/A"

补充说明

这种方式本质上还是向量化操作,Pandas会一次性对符合条件的行和指定列完成赋值,避免了循环遍历的低效问题,和你单列操作的底层逻辑一致,只是把单列名换成了列名列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:46:18