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

Pandas DataFrame基于多列条件批量修改指定字段值的高效方法

高效实现方案

直接使用Pandas向量化操作替代行迭代,性能远高于iterrows实现,可轻松应对千列、十万行以上的数据集:

核心代码

import pandas as pd

# 1. 筛选符合条件的行:指定列集合col_list下的所有值仅为40或10000
valid_row_mask = df[col_list].isin([40, 10000]).all(axis=1)
# 2. 仅修改指定列中值为40的字段为1
df.loc[valid_row_mask, col_list] = df.loc[valid_row_mask, col_list].replace(40, 1)

完整测试验证

# 构造示例DataFrame
df = pd.DataFrame({
    60: [1, 40, 15, 1],
    700: [40, 40, 40, 40],
    701: [40, 1, 40, 40],
    702: [1, 10000, 10000, 10000]
})
col_list = [700, 701, 702]

# 执行处理逻辑
valid_row_mask = df[col_list].isin([40, 10000]).all(axis=1)
df.loc[valid_row_mask, col_list] = df.loc[valid_row_mask, col_list].replace(40, 1)

print(df)

执行后输出和预期完全一致:

60  700  701    702
0   1   40   40      1
1  40   40    1  10000
2  15    1    1  10000
3   1    1    1  10000

性能说明

整个逻辑全部是Pandas底层C实现的向量化运算,没有Python层的循环,相比iterrows性能提升至少两个数量级,数据集越大优势越明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 02:36:03