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

Python如何遍历数据集列 比对列表值实现跨列条件赋值

Python实现列值匹配批量赋值方案

处理这类表格列匹配赋值的需求,优先用pandas库实现,不需要手写逐行遍历,执行效率高代码也简洁。


具体实现步骤

  • 第一步:安装并导入pandas(如果没装的话先执行pip install pandas)
  • 第二步:读取你的数据集,定义要匹配的目标姓名列表(推荐转成集合结构,大数据量下匹配速度远快于列表)
  • 第三步:用isin()方法批量判断每一行的col A值是否在目标名单内,直接将布尔结果转成int类型(True对应1,False对应0)赋值给col B即可。

完整代码示例

import pandas as pd

# --------------------------
# 1. 读取数据(替换成你自己的文件路径即可)
# 比如读csv:df = pd.read_csv("你的数据文件.csv")
# 比如读excel:df = pd.read_excel("你的数据文件.xlsx")
# 这里用模拟数据做演示
df = pd.DataFrame({
    "col A": ["james", "tom", "clara", "bob", "michael", "alice"],
    "col B": [None]*6
})

# 2. 定义要匹配的姓名集合
target_names = {"james", "michael", "clara"}

# 3. 批量赋值(核心逻辑,1行代码搞定)
df["col B"] = df["col A"].isin(target_names).astype(int)

# 如果存在大小写不统一的情况(比如Col A里有James/CLARA这类写法),先统一转小写再匹配
# df["col B"] = df["col A"].str.lower().isin(target_names).astype(int)

# 处理完可以把结果存回文件
# df.to_excel("处理结果.xlsx", index=False)

运行后得到的结果完全符合需求:col A中姓名在指定列表内的行,col B值为1,其余为0。


无第三方库的原生Python实现

如果你不想依赖pandas,数据本身是字典列表结构,可以直接循环判断赋值:

# 目标匹配名单
target_names = {"james", "michael", "clara"}

# 你的原始数据(每行是一个字典)
data = [
    {"col A": "james", "col B": None},
    {"col A": "tom", "col B": None},
    {"col A": "clara", "col B": None},
    {"col A": "michael", "col B": None},
    {"col A": "bob", "col B": None}
]

# 逐行判断赋值
for row in data:
    row["col B"] = 1 if row["col A"].lower() in target_names else 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:09:10