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

如何在Pandas中对多列应用条件替换值

批量替换DataFrame中指定前缀列的符合条件值

方法一:循环列复用原有逻辑

你已经获取了目标列集合cols,只需要遍历这些列,对每一列执行你写好的替换逻辑即可:

cols = te_matrix.filter(like='P1-').columns
for col in cols:
    te_matrix[col] = te_matrix.apply(lambda row: row['family'] if row[col] > 0 else row[col], axis=1)

这个方式逻辑和你实现的单列代码完全一致,简单直观,适合数据量不大的场景。

方法二:向量化操作(更高效)

如果数据集较大,逐行apply的效率偏低,推荐用numpy的向量化操作批量处理,性能提升明显:

import numpy as np

cols = te_matrix.filter(like='P1-').columns
# 将family列转为二维数组,匹配目标列的形状
family_vals = te_matrix['family'].values[:, np.newaxis]
# 批量替换所有目标列中大于0的值
te_matrix[cols] = np.where(te_matrix[cols] > 0, family_vals, te_matrix[cols])

这里利用np.where对整个目标列区域进行条件判断,一次性完成替换,避免了逐行循环的开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 00:39:51