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

如何通过For Loop与If语句为DataFrame新增布尔列并填充值

实现SKU匹配的布尔列填充

用For Loop + If语句的实现方式

你原来的代码只遍历了GAP SKU的值,但没法对应到具体行,所以无法修改新列。可以通过遍历行索引和行数据来解决:

  1. 先初始化新增的True/False列,默认值设为False
  2. 用iterrows()遍历每一行,同时拿到行索引和行数据
  3. 检查当前行的GAP SKU是否存在于Consolidated SKU列中,存在则把对应行的新列设为True

代码示例:

import pandas as pd

# 初始化新列,默认值为False
df['True/False'] = False

# 遍历每一行,获取索引和行数据
for idx, row in df.iterrows():
    current_gap_sku = row['GAP SKU']
    # 转为numpy数组提升查询效率
    if current_gap_sku in df['Consolidated SKU'].values:
        df.loc[idx, 'True/False'] = True

更高效的Pandas内置方法(推荐)

如果处理的数据集较大,for loop的运行效率会很低,推荐使用Pandas内置的isin()方法,一行代码即可完成需求,且内部做了性能优化:

df['True/False'] = df['GAP SKU'].isin(df['Consolidated SKU'])

该方法会直接生成对应布尔值的列,逻辑和你要求的完全一致,是更符合Pandas风格的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:55:18